La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Linformatique : une grande cuisine. 2 Les caches Dans lexemple de la bibliothèque, le bureau fait office de cache. Cache est le nom qui a été choisi.

Présentations similaires


Présentation au sujet: "1 Linformatique : une grande cuisine. 2 Les caches Dans lexemple de la bibliothèque, le bureau fait office de cache. Cache est le nom qui a été choisi."— Transcription de la présentation:

1 1 Linformatique : une grande cuisine

2 2 Les caches Dans lexemple de la bibliothèque, le bureau fait office de cache. Cache est le nom qui a été choisi pour représenter le niveau de hiérarchie de mémoire situé entre lUC et la mémoire principale. Lélément de base est le bloc. Mémoire Centrale Mémoire Centrale UC

3 3 Hiérarchie mémoire motsBlocs de mots Pages de mots UC Cache RAM Disque 100 Ko512 Ko64-128 Méga 10 Téra 5 ns 10-12 ns60 ns8 ms

4 4 Problématique

5 5 Référence à un mot Xn dans le cache Mémoire Centrale Mémoire Centrale UC X4 X1 Xn-2 Xn-1 X5 X3 X4 X1 Xn-2 Xn-1 X5 X3

6 6 Référence à un mot Xn dans le cache Mémoire Centrale Mémoire Centrale UC X4 X1 Xn-2 Xn-1 X5 X3 X4 X1 Xn-2 Xn-1 X5 X3 UC veut faire référence à Xn 1

7 7 Référence à un mot Xn dans le cache Recherche de Xn dans le cache Mémoire Centrale Mémoire Centrale UC X4 X1 Xn-2 Xn-1 X5 X3 X4 X1 Xn-2 Xn-1 X5 X3 2

8 8 Référence à un mot Xn dans le cache Recherche de Xn dans le cache Mémoire Centrale Mémoire Centrale UC X4 X1 Xn-2 Xn-1 X5 X3 X4 X1 Xn-2 Xn-1 X5 X3 Xn Défaut de cache 2

9 9 Référence à un mot Xn dans le cache Extraction de Xn dans la mémoire Insertion dans le cache Mémoire Centrale Mémoire Centrale UC X4 X1 Xn-2 Xn-1 X5 Xn X3 X4 X1 Xn-2 Xn-1 X5 Xn X3 3

10 10 Bilan : Référence à un mot Xn X4 X1 Xn-2 Xn-1 X5 Xn X3 Après la référence à Xn X4 X1 Xn-2 Xn-1 X5 X3 Avant la référence à Xn

11 11 But du cours Question 1 : Où placer un bloc? Question 2 : Comment un bloc est-il trouvé ? Question 3 : Quel bloc remplacé lors dun défaut ? Question 4 : Comment sont traités les écritures?

12 12 Question 1 : Où placer un bloc? Caches à correspondances directes Caches totalement associatifs Caches associatifs par ensemble

13 13 web cachespentium3

14 14 Les caches à correspondance directe Le moyen le plus simple est dassigner un emplacement unique dans le cache. Cet emplacement est fonction du mot en mémoire. La correspondance est la suivante : numéro de bloc modulo le nombre de blocs dans le cache Cette structure du cache est dite à correspondance directe. adresse Rappel : Modulo n = reste de la division par n

15 15 Rappel modulo

16 16 Rappel modulo 27 27 mod 8 =3

17 17 Cache à correspondance directe 8 entrées Mémoire Centrale Mémoire Centrale UC Exemple :

18 18 Cache à correspondance directe 8 entrées UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 Adresse Donnée Adresse Donnée ?

19 19 Cache à correspondance directe 8 entrées UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 1 mod 8 = 1

20 20 Cache à correspondance directe 8 entrées UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101

21 21 Simulateur

22 22 Cache à correspondance directe 8 entrées UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 Aux 4 adresses 00001, 01001, 10001, 11001 correspond la même entrée dindex (adresse dans le cache) 001 du cache Aux 4 adresses 00001, 01001, 10001, 11001 correspond la même entrée dindex (adresse dans le cache) 001 du cache

23 23 Cache à correspondance directe 8 entrées UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101

24 24 Cache à correspondance directe 8 entrées UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 PROBLEME : Un emplacement dans le cache peut appartenir à plusieurs emplacements mémoire. Comment savoir si la donnée correspond au mot demandé ?

25 25 Cache à correspondance directe 8 entrées UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 Réponse : Une Etiquette permet de savoir si le mot demandé est dans le cache DonnéeEtiquette

26 26 Cache à correspondance directe 8 entrées UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 Index Etiquette donnée 00 01

27 27 Question 1 : Où placer un bloc? Caches à correspondance directe Caches totalement associatifs Caches associatifs par ensemble

28 28 Les caches totalement associatifs Si un bloc peut être placé nimporte où dans le cache, celui ci est totalement associatif.

29 29 Les caches totalement associatifs UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 ?

30 30 Les caches totalement associatifs UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101

31 31 Simulateur Simulateurdecache

32 32 Question 1 : Où placer un bloc? Caches à correspondance directe Caches totalement associatifs Caches associatifs par ensemble

33 33 Caches associatif par ensemble Si un bloc peut être placé dans un ensemble restreint de places dans le cache, le cache est dit associatif par ensemble de blocs. Un ensemble est un groupe de blocs dans le cache. Un bloc est dabord affecté à un ensemble, puis placé nimporte où dans lensemble. numéro de lensemble = numéro de bloc modulo le nombre densembles dans le cache

34 34 Cache associatif par ensemble de 4 UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 E0 E1 E2 E3

35 35 Cache associatif par ensemble de 4 UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 17 mod 4 = 1 E0 E1 E2 E3

36 36 Alors quel cache est à utiliser ? Augmenter le degré dassociativité présente généralement lavantage de diminuer le taux de défaut. (Voir TD) Mais cela a tendance à augmenter le coût et le temps daccès.

37 37 But du cours Question 1 : Où placer un bloc? Question 2 : Comment un bloc est-il trouvé ? Question 3 : Quel bloc remplacé lors dun défaut ? Question 4 : Comment sont traités les écritures?

38 38 Organisation de la mémoire principale 0123 4567 891011 048048 Adresse du mot Adresse de loctet

39 39 Organisation de la mémoire principale 45674567 048048 Adresse du mot Adresse de loctet 0123 4567 891011 Mémoire Transfert du mot de 32 bits Pour se déplacer dans le bloc il faut 2 bits dadresse, mais tous les octets Ont le même index. Mémoire Cache

40 40 Comment trouver un bloc ? Quelle est la relation de ladresse UC avec le cache ? Numéro de lensemble Déplacement dans le bloc Cache associatif par ensemble de bloc Etiquette Index Déplacement dans le bloc Cache direct Etiquette Taille =Log2(blocCache)-1 Index Remarque : en augmentant dun facteur de deux lassociativité on diminue de 1 bit la taille de lindex.

41 41 Cache à correspondance directe Validité Etiquettedonnée Index 0 1 2... 1022 1023 Succès

42 42 UC veux la donnée qui est à ladresse : 31 30 29 28...............16 15 14 13 12 11 10 9...4 3 2 1 0 Etiquette Index Validité Etiquettedonnée Index 0 1 2... 1022 1023 Adresse doctet 32 UCUC UCUC

43 43 Lindex sélectionne une entrée du cache : 31 30 29 28...............16 15 14 13 12 11 10 9...4 3 2 1 0 Etiquette Index Validité Etiquettedonnée Index 0 1 2... 1022 1023 Adresse doctet 32 UCUC UCUC

44 44 Compare létiquette 31 30 29 28...............16 15 14 13 12 11 10 9...4 3 2 1 0 Etiquette Index Validité Etiquettedonnée Index 0 1 2... 1022 1023 Adresse doctet = UCUC UCUC

45 45 Le mot est délivré au processeur. 31 30 29 28...............16 15 14 13 12 11 10 9...4 3 2 1 0 Etiquette Index Validité Etiquettedonnée Index 0 1 2... 1022 1023 Adresse doctet 32 SUCCES UCUC UCUC ET

46 46 En cas de défaut 31 30 29 28...............16 15 14 13 12 11 10 9...4 3 2 1 0 Etiquette Index UCUC UCUC Mémoire Cache Défaut/succès Donnée Adresse UC

47 47 Comment tirer parti de la localité spatiale ? Le cache que nous avons décrit jusquà présent ne tire pas parti de la localité spatiale dans les requêtes. En effet, chaque mot dispose de son propre bloc. EXEMPLE Supposons que les adresses doctets suivantes soient demandées par un programme :

48 48 Exemple : 16,...,19,...,17 UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101

49 49 Exemple : 16,...,19,...,17 UC 16 UC 16 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 16 10000 Etiquette Index

50 50 Exemple : 16,...,19,...,17 UC 16 UC 16 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 16 10000 Etiquette Index DEFAUT

51 51 Exemple : 16,...,19,...,17 UC 16 UC 16 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 16 10000 Etiquette Index 10

52 52 Exemple : 16,...,19,...,17 UC 19 UC 19 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 19 10011 Etiquette Index

53 53 Exemple : 16,...,19,...,17 UC 19 UC 19 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 Etiquette Index DEFAUT 19 10011

54 54 Exemple : 16,...,19,...,17 UC 19 UC 19 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 Etiquette Index 10 19 10011

55 55 Exemple : 16,...,19,...,17 UC 17 UC 17 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 Etiquette Index 10 17 10001 DEFAUT

56 56 Exemple : 16,...,19,...,17 UC 000 001 010 011 100 101 110 111 10 Bilan : 3 défauts

57 57 Jai une idée ! Ce Dupont.... Dans mes bras = Augmenter la taille des blocs

58 58 Caches à 4 mots mémoire UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101

59 59 Caches à 4 mots mémoire UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 indexadresse dans le bloc remarque : pas détiquette 2 bits3 bits

60 60 Exemple : 16,...,19,...,17 UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 indexadresse dans le bloc remarque : pas détiquette 100 00 16 DEFAUT

61 61 Exemple : 16,...,19,...,17 UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 16 10000 index adresse dans le bloc remarque : pas détiquette 16 16 17 18 19 On ramène les ref : 16,17,18,19

62 62 Exemple : 16,...,19,...,17 UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 19 10011 index adresse dans le bloc remarque : pas détiquette 19 16 17 18 19 succès

63 63 Exemple : 16,...,19,...,17 UC 000 001 010 011 100 101 110 111 11001 11101 10001 10101 01001 01101 00001 00101 17 10001 index adresse dans le bloc remarque : pas détiquette 17 16 17 18 19 succès

64 64 Exemple : 16,...,19,...,17 Bilan : 1 seul défaut survient pour trois références. SUPER : JE SUIS LE MEILLEUR

65 65 Exemple : 16,...,19,...,17 Bilan : 1 seul défaut survient pour trois références. SUPER : JE SUIS LE MEILLEUR DUPONT and Co

66 66 Si nous avons les temps daccès suivants : 1 cycle dhorloge pour envoyer ladresse 10 cycles dhorloge pour chaque accès mémoire 1 cycle dhorloge pour envoyer un mot de donnée. Total = 3* (1+10+1) = 36 cycles

67 67 Exemple : 16,...,19,...,17 Reprenons les chiffres précédent : 1 cycle dhorloge pour envoyer ladresse 10 cycles dhorloge pour chaque accès mémoire 1 cycle dhorloge pour envoyer un mot de donnée. Total = 1+4*10+4*1 = 45 cycles Le gain nest pas ici enorme !!!!!. Comment diminuer ce temps ?

68 68 Organisation des mémoires UC Cache Bus Mémoire UC Cache Bus Mémoire UC Cache Bus BMBM BMBM BMBM BMBM

69 69 Organisation dune mémoire entrelacée Adresse externe a=4b bbbbbbbb Mot 1Mot 2Mot 3Mot 4 0123456789...0123456789... Mémoire entrelacée

70 70 Tirer parti de la localité spatiale Question : De quelle manière une plus grande taille de bloc influence-t-elle les performances ? Le taux de défauts chute lorsque nous augmentons la taille de bloc. Attention : il faut adapter le système mémoire en conséquence.

71 71 Encore plus compliqué : Le taux de défaut peut augmenter, si la taille de bloc est prise très grande par rapport à la taille du cache, car le nombre de blocs pouvant être contenus dans le cache deviendra petit, et la compétition entre ces blocs sera rude. Par conséquent un bloc sera éjecté du cache avant quun grand nombre de ses mots soit accédé. Le coût du défaut croît. Car le temps nécessaire(si on ne modifie pas le système mémoire) pour accéder à une données augmente.

72 72 Les caches par ensemble

73 73 Par ensemble (256) de 4 blocs V ED Index 0 1 2... 253 254 255 V ED Succès Donnée Multiplexeur 4 par 1 4 Blocs 256 Ensembles

74 74 Par ensemble (256) de 4 blocs V ED Index 0 1 2... 253 254 255 V ED Succès Donnée Multiplexeur 4 par 1 4 Blocs 256 Ensembles 31 30 29 28...............16 15 14 13 12 11 10 9...4 3 2 1 0 Adresse doctet UCUC UCUC

75 75 Par ensemble (256) de 4 blocs V ED Index 0 1 2... 253 254 255 31 30 29 28...............16 15 14 13 12 11 10 9...4 3 2 1 0 Adresse doctet V ED Succès Donnée Multiplexeur 4 par 1 8 22 UCUC UCUC

76 76 Par ensemble (256) de 4 blocs V ED Index 0 1 2... 253 254 255 31 30 29 28...............16 15 14 13 12 11 10 9...4 3 2 1 0 Adresse doctet V ED Succès Donnée Multiplexeur 4 par 1 8 22

77 77 Par ensemble (256) de 4 blocs V ED Index 0 1 2... 253 254 255 31 30 29 28...............16 15 14 13 12 11 10 9...4 3 2 1 0 Adresse doctet V ED Succès Donnée Multiplexeur 4 par 1 8 22 UCUC UCUC

78 78 Les étiquettes en fonction du type de caches 31 30 29 28...............16 15 14 13 12 11 10 9...4 3 2 1 0 Adresse doctet 31 30 29 28...............16 15 14 13 12 11 10 9...4 3 2 1 0 Etiquette Index 31 30 29 28...............16 15 14 13 12 11 10 9...4 3 2 1 0 Adresse doctet Etiquette Index Totalement associatif Associatif par ensemble de bloc Correspondance directe Pour des caches de même dimension :

79 79 But du cours Question 1 : Où placer un bloc? Question 2 : Comment un bloc est-il trouvé ? Question 3 : Quel bloc remplacé lors dun défaut ? Question 4 : Comment sont traités les écritures?

80 80 Quel bloc remplacé lors dun défaut ? Il existe trois stratégies principales employées pour choisir le bloc à remplacer : FIFO (Pas bonne) Le hasard (facile à réaliser) Le plus ancien (LRU Least Rencently Used). Ceci utilise un corollaire de la localité temporelle. Remarque = FIFOdifférent de LRU.

81 81 Les défauts de caches Défauts obligatoires de chargement (défaut de démarrage à froid). Un bloc accédé pour la première fois nest pas dans le cache. Défauts de capacité. Si le cache ne peut contenir tous les blocs nécessaires au cours de lexécution dun programme Défauts de conflits (défaut de collision). Si la stratégie de placement de bloc est associative par ensembles de blocs ou à correspondance directe, des défauts de conflit surviendront, car un bloc peut être rejeté puis récupéré si trop de blocs sont en correspondance avec le même ensemble.

82 82 But du cours Question 1 : Où placer un bloc? Question 2 : Comment un bloc est-il trouvé ? Question 3 : Quel bloc remplacé lors dun défaut ? Question 4 : Comment sont traités les écritures?

83 83 Comment sont traités les écritures? Lécriture simultanée (ou rangement simultané) : Linformation est écrite à la fois dans le bloc du cache et dans le bloc de la mémoire de niveau inférieur. La réécriture (la recopie) : Linformation est écrite uniquement dans le bloc du cache. Le bloc modifié du cache est recopié en mémoire principale uniquement quand il est remplacé.

84 84 Tirer parti de la localité spatiale Question : De quelle manière une plus grande taille de bloc influence-t-elle les performances ? Le taux de défauts chute lorsque nous augmentons la taille de bloc. Attention : il faut adapter le système mémoire en conséquence.

85 85 Encore plus compliqué : ATTENTION (voir TD) Le taux de défaut peut augmenter, si la taille de bloc est prise très grande par rapport à la taille du cache, car le nombre de blocs pouvant être contenus dans le cache deviendra petit, et la compétition entre ces blocs sera rude. Par conséquent un bloc sera éjecté du cache avant quun grand nombre de ses mots soit accédé. Le coût du défaut croît. Car le temps nécessaire(si on ne modifie pas le système mémoire).

86 86 Les performances des caches Le temps UC est divisé entre les cycles dhorloge passés par lUC à exécuter le programme et les cycles dhorloge que lUC passe à attendre le système mémoire. Tps UC = (Cycles dexécution UC + Cycles dattente mémoire) * Tps C

87 87 Les cycles dattente mémoire Les cycles dhorloge dattente mémoire proviennent principalement des défauts de cache. (Une prédiction précise des performances implique généralement des simulations très détaillées du processeur et du système mémoire). Cycles dattente = (Nb. dinst/programmes) mémoire*(Nb. de défauts/instruction) *Coût défaut Cycles dattente = (Nb. d'accès par programme) mémoire*(taux de défaut) *Coût défaut

88 88 Résumé Où peut être placer un bloc ? Un corresp. direct, plusieurs (associatif par ensembles), ou tout (totalement associatif) endroit. Comment un bloc est il trouvé ? Indexation (correspondance direct) Recherche limitée (associatif par ensembles) Recherche totale (totalement associatif) Quel bloc est remplacé lors dun défaut ? Généralement, soit le moins récemment utilisé, soit un bloc au hasard, de manière aléatoire. Comment sont traitées les écritures ? Chaque niveau de la hiérarchie peut utiliser soit lécriture simultanée soit la réécriture.

89 89 Résumé Le défi lancé par la conception des hiérarchies de mémoires est que tout changement qui peut améliorer le taux de défauts peut aussi affecter de façon négative les performances globales. Cest une combinaison d'effets positifs et négatifs pour chaque paramètre de conception qui rend délicate la conception dune hiérarchie de mémoires Changement de Conception Augmenter la taille Augmenter lassociativité Augmenter la taille de bloc Effet sur le taux de défauts Réduit les défauts de capacité Réduit le taux de défaut dû aux défauts de conflit Réduit le taux de défaut pour un large éventail de tailles de bloc Effet négatif possible sur les performances Peut augmenter le Tps daccès Peut augmenter le temps daccès Peut augmenter le coût de défaut

90 90 Caches : taille des blocs Coût de léchec Tps transfert Tps daccès Taille du bloc Taux déchec T ps daccès Augmenter la taille du cache indéfiniment


Télécharger ppt "1 Linformatique : une grande cuisine. 2 Les caches Dans lexemple de la bibliothèque, le bureau fait office de cache. Cache est le nom qui a été choisi."

Présentations similaires


Annonces Google