Gestion de la mémoire centrale Fonction de mémorisation Ä Rappels et généralités • Le principe de la hiérarchie de mémoire, le fonctionnement des caches • Cache associatif • Cache à correspondance directe Architecture des machines et systèmes Informatiques A0, 2001/2002 Joëlle Delacroix 1 Structure générale de la machine physique Horloge Processeur Central Mémoire Cache Mémoire Centrale Architecture des machines et systèmes Informatiques A0, 2001/2002 Bus Réseau d' échange Unité d’échange Joëlle Delacroix 2 1 Structure générale de la machine physique • La mémoire centrale contient les instructions et données des programmes à exécuter. Avec le disque, la mémoire cache, elle constitue un système de hiérarchie de mémoire qui permet de rapprocher la vitesse de la mémoire centrale de celle du processeur. Architecture des machines et systèmes Informatiques A0, 2001/2002 Joëlle Delacroix 3 La mémoire centrale • • • • • Architecture des machines et systèmes Informatiques A0, 2001/2002 La mémoire centrale est constituée par un ensemble de mots mémoire. Un mot est constitué par un ensemble d'octets. Chaque mot est repéré de manière unique par une adresse. Elle s'interface avec le cpu via les registres RAD et RDO Une zone particulière de la mémoire est gérée comme une structure de pile repérée par le registre Rsp Joëlle Delacroix 4 2 La mémoire centrale Fonctions : Bus d'adresses m Bits stockage programme et données Adresse Unités de stockage : Bit, Octet, Mot. Lecture Ecriture Bus de commandes Mémoire Mots Adressage : m 2 Mots de p bits Temps d’accès. Technologies. Données Coûts. p Bits Bus de Données Mot ou octet Joëlle Delacroix Architecture des machines et systèmes Informatiques A0, 2001/2002 5 La mémoire centrale 0 1 2 3 mot1 mot2 mot3 mot4 mot5 4 • Adressage par mot • seuls les mots sont adressables et donc répérés par une adresse Mot de 4 octets • 0 4 8 12 0 1 2 16 3 mot1 mot2 mot3 mot4 mot5 Mot de 4 octets Architecture des machines et systèmes Informatiques A0, 2001/2002 Adressage par octets • chacun des octets composant un un mot est adressable et est donc repéré par une adresse • l'adresse d'un mot est alors celle de son premier octet. Joëlle Delacroix 6 3 Les caractéristiques de la mémoire centrale • Accès : direct (disque dur) ou séquentiel (bande magnétique) • Capacité : volume d'informations qu'elle est capable de stocker. Exprimée en Kilooctets (Ko = 210 octets), Mégaoctets (Mo = = 2 20 octets) et Gigaoctets (Go = 230 octets) • Volabilité : une mémoire est volatile si elle perd son contenu à la suite d'une coupure de courant • Temps d'accès : temps qui s'écoule entre l'instant où une commande mémoire est émise (lecture/écriture) et l'instant où l'opération est effectivement effectuée. Architecture des machines et systèmes Informatiques A0, 2001/2002 Joëlle Delacroix 7 Les différents types de mémoire • Mémoires mortes : non volatiles, accès direct ROM(Read Only Memory) : une fois l'information enregistrée, celle-ci ne peut pas (ou difficilement) être modifiée • Mémoires vives : volatiles, accès direct RAM (Random Access Mémory) : accessible en lecture et écriture DRAM : (Dynamic Ram) SRAM : (Static Ram) Architecture des machines et systèmes Informatiques A0, 2001/2002 Joëlle Delacroix 8 4 Mémoire centrale Données Vcc D0 D1 D2 D3 D4 D5 D6 D7 Read Write Sélection R W S Architecture des machines et systèmes Informatiques A0, 2001/2002 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 Adresses Alimentation RAM Mémoire RAM (brochage) Joëlle Delacroix 9 Gestion de la mémoire centrale Fonction de mémorisation • Rappels et généralités Ä Le principe de la hiérarchie de mémoire, le fonctionnement des caches • Cache associatif • Cache à correspondance directe Architecture des machines et systèmes Informatiques A0, 2001/2002 Joëlle Delacroix 10 5 Hiérarchie Mémoire vitesse 6-35 ns 70 - 120 ns 10000000-20000000 ns cout Le plus élevé Le moins élevé capacité La plus petite La plus grande Processeur Registres Mémoire Cache Mémoire centrale Mémoire d'appui Disque Magnétique Bus Local DRAM SRAM Bus Architecture des machines et systèmes Informatiques A0, 2001/2002 Joëlle Delacroix 11 Mémoire cache • Définition • La mémoire cache est une mémoire intermédiaire placée entre le processeur et la mémoire centrale dont le temps d'accès est de 4 à 20 fois inférieur à celui de la mémoire centrale Architecture des machines et systèmes Informatiques A0, 2001/2002 Joëlle Delacroix 12 6 Mémoire cache : principe la stratégie suivie s'appuie sur le principe de localité Processeur Registres info a Mémoire Cache Mémoire info b Centrale Bus Local DRAM SRAM 1 ? 2 Architecture des machines et systèmes Informatiques A0, 2001/2002 ? 1. L'info cherchée est-elle dans le cache ? OUI / Succès (a) : ramener l'info dans le processeur NON / défaut (2) : chercher l'info dans la mémoire centrale 2. L'info est-elle en mémoire centrale ? OUI / Succès (b) : ramener l'info dans le cache , puis dans le processeur (a) NON / défaut Joëlle Delacroix 13 Mémoire cache Principe de localité • Localité temporelle : si une donnée d'adresse A est accédée à un temps t, la probabilité qu'elle soit de nouveau accédée aux temps t+1, t+2 est très forte. F La donnée est remontée dans le cache pour minimiser les temps d'accès suivants • Localité spatiale : si une donnée d'adresse A est accédée à un temps t, la probabilité que les données d'adresses voisine (A+1, A+2, ..) soient accédées aux temps t+1, t+2 est très forte. F La donnée d'adresse A et également les données d'adresse voisines sont remontées dans le cache pour minimiser les temps d'accès suivants Architecture des machines et systèmes Informatiques A0, 2001/2002 Joëlle Delacroix 14 7 Processeur Registres Mémoire Cache Mémoire Centrale Mémoire cache Le cache en lecture Bus Local DRAM SRAM Bus Si Info. présente Alors Charger processeur avec information Sinon Charger cache avec la donnée et ses voisines Charger processeur Lecture Load D, R, A FinSi FinSi Joëlle Delacroix Architecture des machines et systèmes Informatiques A0, 2001/2002 Processeur Registres Mémoire Cache 15 Mémoire Centrale Mémoire cache Le cache en écriture Bus Local SRAM DRAM Bus Ecriture Store D, R, C Write Thru Si Info. présente Alors Modifier cache Modifier Mémoire principale Sinon Modifier mémoire principale Posted Write FinSi Architecture des machines et systèmes Informatiques A0, 2001/2002 Write Back Joëlle Delacroix 16 8 Mémoire cache : principe cache • Problème du processeur : l'information recherchée est-elle présente dans le cache ? • Deux types de cache : F associatif : une information de la mémoire centrale est placée dans n'importe quelle entrée libre du cache F à correspondance directe : l'entrée du cache occupée par une information est fonction de l'adresse en mémoire centrale de cette information. F Pour trouver une information, stratégie de recherche différente. Architecture des machines et systèmes Informatiques A0, 2001/2002 Répertoire : infos de gestion pour trouver une information Donnée utiles Joëlle Delacroix 17 Gestion de la mémoire centrale Fonction de mémorisation • Rappels et généralités • Le principe de la hiérarchie de mémoire, le fonctionnement des caches Ä Cache associatif • Cache à correspondance directe Architecture des machines et systèmes Informatiques A0, 2001/2002 Joëlle Delacroix 18 9 Load D, R, Mémoire centrale 0 2 3 5 0000 0010 0020 0 1 2 3 4 5 6 7 8 9 0220 0230 a b c d e f g h i j 9970 9980 9990 Si répertoire contient 023 Alors Charger f dans processeur Sinon Si répertoire plein Alors Remplacement ligne Cache purement associatif : Lecture Joëlle Delacroix Architecture des machines et systèmes Informatiques A0, 2001/2002 Load D, R, 0 1 2 3 4 5 6 7 8 9 Remplir ligne Charger f dans processeur Sinon Remplir une ligne Charger f dans processeur 19 Mémoire centrale 0 2 3 5 0000 0010 0020 0220 0230 a b c d e f g h i j 023 a b c d e f g h i j 9970 9980 9990 Si répertoire contient 023 Alors Charger f dans processeur Sinon Si répertoire plein Alors Remplacement ligne Cache purement associatif : Lecture Architecture des machines et systèmes Informatiques A0, 2001/2002 Remplir ligne Charger f dans processeur Sinon Remplir une ligne Charger f dans processeur Joëlle Delacroix 20 10 Load D, R, 0 1 Ligne libre 2 3 4 5 6 7 8 9 Mémoire centrale 0 2 3 5 0000 0010 0020 001 003 022 023 a b c d e f g h i j 000 998 0220 0230 a b c d e f g h i j 9970 9980 9990 Si répertoire contient 023 Alors Charger f dans processeur Sinon Si répertoire plein Alors Remplacement ligne Cache purement associatif : Lecture Joëlle Delacroix Architecture des machines et systèmes Informatiques A0, 2001/2002 Load D, R, Ligne choisie 0 1 2 3 4 5 6 7 8 9 Remplir ligne Charger f dans processeur Sinon Remplir une ligne Charger f dans processeur Mémoire centrale 0 2 3 5 001 003 023 997 002 998 030 000 998 040 21 0000 0010 0020 a b c d e f g h i j 0220 0230 a b c d e f g h i j 9970 9980 9990 Si répertoire contient 023 Alors f dans processeur AlorsCharger Charger f dans processeur Sinon Si répertoire plein Alors Remplacement ligne Cache purement associatif : Lecture Architecture des machines et systèmes Informatiques A0, 2001/2002 Remplir ligne Charger f dans processeur Sinon Remplir une ligne Charger f dans processeur Joëlle Delacroix 22 11 Cache purement associatif : Lecture Adresse mémoire Etiquette Offset Répertoire ( clés ) Comparateurs Si Répertoire contient Etiquette mémoire utile contenant les informations : Instructions ou données Information trouvée Alors Information trouvée Charger le processeur Sinon Si Répertoire plein Alors Algorithme de remplacement de ligne Remplir la ligne choisie Charger le processeur Sinon Remplir une ligne libre Charger le processeur FinSi FinSi Architecture des machines et systèmes Informatiques A0, 2001/2002 Joëlle Delacroix 23 Gestion de la mémoire centrale Fonction de mémorisation • Rappels et généralités • Le principe de la hiérarchie de mémoire, le fonctionnement des caches • Cache associatif Ä Cache à correspondance directe Architecture des machines et systèmes Informatiques A0, 2001/2002 Joëlle Delacroix 24 12 Cache à accès direct Load D R Mémoire centrale 0000 0010 0020 0 2 3 5 0 1 2 3 4 5 6 7 8 9 Si 02 0 0 02 1 0 02 2 0 02 3 0 a b c d e f g h i j 02 4 0 02 9 0 9990 Répertoire [3] = 02 Alors Sinon Charger processeur avec MemoireUtile[3,5] Répertoire[3] = 02 Charger Ligne[3] à partir de la mémoire centrale Charger processeur avec MémoireUtile[3,5] FinSi Joëlle Delacroix Architecture des machines et systèmes Informatiques A0, 2001/2002 25 Cache à accès direct Load D R 0 1 2 3 4 5 6 7 8 9 Si Mémoire centrale 0000 0010 0020 0 2 3 5 01 03 02 01 00 99 03 00 99 04 Répertoire [3] = 02 FinSi 02 0 0 02 1 0 02 2 0 02 3 0 a b c d e f g h i j 02 4 0 02 9 0 9990 Alors Sinon Architecture des machines et systèmes Informatiques A0, 2001/2002 Charger processeur avec MemoireUtile[3,5] Répertoire[3] = 02 Charger Ligne[3] à partir de la mémoire centrale Charger processeur avec MémoireUtile[3,5] Joëlle Delacroix 26 13 Cache à accès direct Load D R 0 1 2 3 4 5 6 7 8 9 Si Mémoire centrale 0000 0010 0020 0 2 3 5 01 03 02 02 00 99 03 00 99 04 a b c d e f g h i j 02 0 0 02 1 0 02 2 0 02 3 0 a b c d e f g h i j 02 4 0 02 9 0 9990 Répertoire [3] = 02 Alors Sinon Charger processeur avec MemoireUtile[3,5] Répertoire[3] = 02 Charger Ligne[3] à partir de la mémoire centrale Charger processeur avec MémoireUtile[3,5] FinSi Joëlle Delacroix Architecture des machines et systèmes Informatiques A0, 2001/2002 27 Cache à accès direct Load D, R, 0 2 3 2 01 03 02 02 00 99 03 00 99 04 0 1 2 3 4 5 6 7 8 9 Si Mémoire centrale Répertoire [3] = 02 FinSi 0000 0010 0020 a b c d e f g h i j 02 0 0 02 1 0 02 2 0 02 3 0 a b c d e f g h i j 02 4 0 02 9 0 9990 Alors Sinon Architecture des machines et systèmes Informatiques A0, 2001/2002 Charger processeur avec MemoireUtile[3,2] Répertoire[3] = 02 Charger Ligne[3] à partir de la mémoire centrale Charger processeur avec MémoireUtile[3,2] Joëlle Delacroix 28 14 Cache à accès direct Adresse mémoire Etiquette Index Offset Mémoire utile contient les informations : instructions ou données Répertoire contient les clés Si Répertoire [Index] = Etiquette Alors Sinon Charger processeur avec MemoireUtile[Index,Offset] Répertoire[Index] = Etiquette Charger Ligne[Index] à partir de la mémoire centrale Charger processeur avec MémoireUtile[Index,Offset] FinSi Architecture des machines et systèmes Informatiques A0, 2001/2002 Joëlle Delacroix 29 Résumé • La mémoire centrale contient les instructions et données des programmes à exécuter. Avec le disque, la mémoire cache, elle constitue un système de hiérarchie de mémoire qui permet de rapprocher la vitesse de la mémoire centrale de celle du processeur. • La mémoire centrale est composée de mots. Un mots est un ensemble d'octets. Si la mémoire est adressable par octet, chaque octet d'un mot a une adresse unique. • La mémoire est caractérisée par sa volabilité, sa capacité et son temps d'accès. • La mémoire cache est une mémoire intermédiaire placée entre le processeur et la mémoire centrale dont le temps d'accès est de 4 à 20 fois inférieur à celui de la mémoire centrale. Son fonctionnement s'appuie sur les principes de localité. • On distingue deux types de cache : les caches associatifs et les caches à accès direct. Architecture des machines et systèmes Informatiques A0, 2001/2002 Joëlle Delacroix 30 15