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

Structure Machine Haouam M. Yassine 2013-2014.

Présentations similaires


Présentation au sujet: "Structure Machine Haouam M. Yassine 2013-2014."— Transcription de la présentation:

1 Structure Machine Haouam M. Yassine

2 Plan du cours Introduction Structure de base d’un ordinateur
Mémoires secondaires Les Entrées/Sorties

3 1. Introduction à l'informatique
Définition 1: Ordinateur : Machine capable d’effectuer automatiquement des opérations arithmétiques et logiques (à des fins scientifiques, administratives, comptables, ) à partir de programmes définissant la séquence de ces opérations. Définition 2: Ordinateur : C’est un appareil électronique qui peut stocker, récupérer et traiter les données à travers un programme

4 Historique 1642: Blaise Pascal créa la machine d'arithmétique (pascaline) Destinée à effectuer mécaniquement des additions et des soustractions. L’automatisation était réalisée à l’aide de roues dentées.

5 1673: Gottfried Leibniz ajouta à la Pascaline la multiplication et la division avec des nombres à 12 chiffres. Il a décrit les mathématiques binaires, système de base des calculs des ordinateurs d'aujourd'hui

6 1801 le Français Joseph-Marie Jacquard
1801 le Français Joseph-Marie Jacquard. invente une machine à tisser programmable à l’aide des cartes perforées

7 1833 : Machine de Charles Babbage (La machine à différence)
Principes du métier à tisser 4 opérations arithmétiques de bases

8 Ensuite il imagine une machine analytique
Quatre parties : magasin (mémoire), moulin (unité de calcul), entrée (lecteur de cartes perforées), sortie (perforation) Opérations arithmétiques, test et branchement conditionnel Non construit faute de moyen.

9 1890 Herman Hollerith utilise une machine à cartes perforées pour le recensement américain.

10 Première génération (1945-1955)
: ENIAC (Electronic Numerical Integrator And Calculator) : tubes, 30 tonnes, multiplie 2 nombres de 10 chiffres en 3 millisecondes. Inconvénients

11 Deuxième génération (1955-1965)
Remplacement des tubes par des transistors 1956 : Disque magnétique (IBM) 1960 : IBM 7000 (William Shockley, John Bardeen, Walter Brattain)

12 Troisième génération (1965-1980)
1958 : apparition des circuits intégrés (puces) et des processeurs : IBM 360, DEC PDP-8, HP-2115

13 Quatrième génération (1980-??)
Ordinateurs personnels et VLSI (Very Large Scale Integration) : augmentation du nombres de transistors

14 2. Structure de base d’un ordinateur Architecture Von Neumann
Von Neumann propose une machine universelle : Unité arithmétique et logique (UAL, ou ALU) : traitement données Mémoire : instructions données Bus : transfert données Unité de commande (UC) : contrôle Unité entrées/sorties (I/O) : échange d’information avec les périphériques.

15 Architecture Von Neumann
Mémoire Unité de commande Unité arithmétique et logique Accumulateur Entrée Sortie

16 L’architecture interne

17 La mémoire La mémoire contient les instructions et les données.
Adresse La mémoire contient les instructions et les données. La mémoire est formée d’un ensemble de mots de longueur fixe, chaque mot contenant une information codée en binaire. Chaque mot de la mémoire est accessible par l’intermédiaire de l’adresse mémoire. Adresse Mots ADD A,B,C 1 23 2 24 3 N Lecture/Ecriture Données

18 Les Bus Ce sont les moyens de transport de l’information à l’intérieur de l’ordinateur. On distingue trois catégories de bus: Les bus de données Il transporte les données Capacité  nombre de fils (un bit par fil) Les bus d’adresses Il transporte l’adresse à laquelle on veut lire ou écrire une donnée Le bus de commande C’est un ensemble de lignes (fils) de transport des ordres ou commandes destinés aux différents éléments de l’ordinateur pour effectuer les opérations

19 L’architecture interne L’unité de commande (1)
Elle permet de séquencer le déroulement des instructions. Elle effectue la recherche en mémoire de l'instruction, le décodage de l’instruction codée sous forme binaire. Enfin elle pilote l’exécution de l’instruction. Les blocs de l’unité de commande : Le compteur de programme (PC : Programme Counter) appelé aussi Compteur Ordinal (CO) : est constitué par un registre dont le contenu est initialisé avec l'adresse de la première instruction du programme. Il contient toujours l’adresse de la prochaine instruction à exécuter.

20 L’architecture interne L’unité de commande (2)
Le registre d'instruction et le décodeur d'instruction : Chacune des instructions à exécuter est transférée depuis la mémoire dans le registre instruction puis est décodée par le décodeur d’instruction. Bloc logique de commande (ou séquenceur) : Il organise l'exécution des instructions au rythme d’une horloge. Il élabore tous les signaux de synchronisation internes ou externes (bus de commande) du microprocesseur en fonction de l’instruction qu’il a exécuter.

21 L’architecture interne L’unité de commande (3)

22 L’architecture interne L’unité de traitement (1)
Elle regroupe les circuits qui assurent les traitements nécessaires à l'exécution des instructions Les blocs de l’unité de traitement : Les accumulateurs: sont des registres de travail qui servent à stocker un opérande au début d'une opération arithmétique et le résultat à la fin de l'opération. L’Unité Arithmétique et Logique (UAL): est un circuit complexe qui assure les fonctions logiques (ET, OU, Comparaison, Décalage, etc…) ou arithmétique (Addition, soustraction…).

23 L’architecture interne L’unité de traitement (2)
Le registre d'état est généralement composé de 8 bits à considérer individuellement. Chacun de ces bits est un indicateur dont l'état dépend du résultat de la dernière opération effectuée par l’UAL. On les appelle indicateur d’état ou flag ou drapeaux. Dans un programme le résultat du test de leur état conditionne souvent le déroulement de la suite du programme. On peut citer par exemple les indicateurs de : Retenue (carry : C) Débordement (overflow : OV ou V) Zéro (Z) ...

24 L’architecture interne L’unité de traitement (3)

25 L’architecture interne Architecture complète

26 Le traitement des instructions
Une instruction est composée de deux éléments : Le code opération: C’est un code binaire qui correspond à l’action à effectuer par le processeur (type d’action) Le champ opérande: Donnée ou bien adresse de la donnée. Une instruction peut contenir 0 ou plusieurs opérandes. Exemple d’instruction: Instruction d’addition: ADD A,B,C (instruction à 3 opérandes) ADD: Code opérations A,B,C : Opérandes C  A + B Code opération Opérande 1 Opérande 2

27 Types d’instructions On distingue six groupes d'instructions :
transferts de données : de mémoire à registre, de registre à registre, de registre à mémoire; opérations arithmétiques : addition, soustraction, multiplication et division; opérations logiques : ET, OU inclusif, NON, etc.; contrôle de séquence : branchements conditionnels ou non, appel de procédure, etc.; entrées/sorties; manipulations diverses : décalage, conversion de format, incrémentation, etc.

28 Modes d'adressage Un champ adresse peut permettre : Modes d’adressage
D’indiquer une valeur De référencer un registre ou un mot en mémoire Modes d’adressage Adressage immédiat : le champ adresse contient la valeur de l’opérande Exemple: MOV #100, R1 le registre R1  100. Adressage registre : Le champ adresse contient le numéro (nom) du registre Exemple: CLR R1 Le registre R1  0

29 Modes d'adressage Adressage direct:
Le champ adresse de l'instruction contient l'adresse effective de l'opérande (l’adresse qui contient la valeur de l’opérande). Exemple: MOV 100, R2 @ Contenu 1 205 100 15 101 23 102 103 105 R2 15

30 Modes d'adressage Adressage indirect:
Le champ adresse de l'instruction contient l'adresse d’une case mémoire qui contient l’adresse effective de l'opérande Exemple: MOV (102), R2 @ Contenu 1 205 100 15 101 23 102 103 105 R2 2O5

31 Le traitement des instructions Phase 1 : Recherche de l’instruction en mémoire
La valeur du PC est placée sur le bus d'adresse par l'unité de commande qui émet un ordre de lecture. Après le temps d'accès à la mémoire, le contenu de la case mémoire sélectionnée est disponible sur le bus des données. L'instruction est stockée dans le registre d’instruction du processeur. La partie code opération est transmise au décodeur pour déterminer le type d’opération et le transmet au séquenceur.

32 Phase 1 : Recherche de l’instruction en mémoire

33 Le traitement des instructions Phase 2 : Décodage et recherche de l’opérande
L'unité de commande transforme l'instruction en une suite de commandes élémentaires nécessaires au traitement de l'instruction. Si l'instruction nécessite une donnée en provenance de la mémoire, l'unité de commande récupère sa valeur sur le bus de données. L’opérande est stocké dans le registre de données.

34 Phase 2 : Décodage et recherche de l’opérande

35 Le traitement des instructions Phase 3 : Exécution de l’instruction
Le séquenceur réalise l'instruction. Les drapeaux sont positionnés (registre d'état). L'unité de commande positionne le PC pour l'instruction suivante.

36 Phase 3 : Exécution de l’instruction

37 Jeu d'instructions Jeu d'instructions: ensemble des instructions (opérations) effectuables par l'UAL; Exemple: plus de 100 sur des architecture CISC [Complex Instruction Set Code] et 35 sur des architectures RISC [Reduced Instruction Set Code] (détails dans un chapitre ultérieur).

38 Jeu d'instruction Transfert de données: Load, Move, Store,
transfert de registre/mémoire a registre, etc. Opérations arithmétiques: les 4 opérations en virgule fixe/flottante et en simple/multiple précision. Opérations logiques: NOT, AND, OR, XOR, etc. Contrôle de séquence: branchement impératif/conditionnel, boucle, appel de procédure, etc. Entrées/sorties: Read, Write, Print, etc. Manipulations diverses: décalages de bits, conversions

39 Exemple On considère une mémoire RAM contenant 16 mots mémoires d'un octet. Il suffit donc de 4 bits pour adresser un mot mémoire. On suppose les instructions suivantes: ADD a: Pour additionner le contenu du registre accumulateur au mot mémoire situé a l'adresse a de la mémoire RAM. Le résultat est stocke dans l'accumulateur ; ADD #a: Pour additionner le contenu du registre accumulateur avec la valeur a. Le résultat est stocke dans l'accumulateur ; JMP a: Pour charger l'adresse a dans le compteur ordinal (instruction de branchement inconditionnel) ;

40 JNZ a: Si le contenu de l'accumulateur est différent de zéro, l'adresse a est chargée dans le compteur ordinal (instruction de branchement conditionnel). SHL. Pour décaler les bits du registre accumulateur d'une position vers la gauche (le dernier bit devient égale a 0) ; LOAD a: Pour charger le registre accumulateur avec le mot mémoire situé à l'adresse a ; LOAD #a: Pour charger la valeur a dans le registre accumulateur. STO a: Pour ranger la valeur contenue dans le registre accumulateur à l'adresse a en RAM. STOP. Arrêt du programme .

41 Travail demandé: En reprenant les trois étapes de déroulement d'une instruction décrites plus haut, décrire pour chacune des étapes le contenu du registre accumulateur, du compteur ordinal et de la mémoire lors de l‘exécution de la séquence d'instructions commençant à l'adresse 0. Le contenu initial de la mémoire est le suivant :

42 Recherche de l’instruction en mémoire
(1) CT CO (2) Lecture RI U A L Load Décodeur R1 Séquenceur (3) CT Load 7

43 Recherche de l’instruction en mémoire
(CO)  // 0  Lecture  Bus de données // Load 7  Bus de données (bus de données)  RI // Load 7  RI (RI.Code opération)  Décodeur // Load  Décodeur

44 Décodage et recherche de l’opérande
7 (1) CT CO (2) Lecture RI U A L Load Décodeur R1 2O Séquenceur (3) CT 20

45 Décodage et recherche de l’opérande
(RI.Opérande)  // 7  Lecture  Bus de données // 20  Bus de données (bus de données)  R1 // 20  R1

46 Exécution de l’instruction
7 (1) CT CO 1 2O NOP (2) Lecture RI U A L Load Décodeur R1 2O Séquenceur (3) CT 20

47 Exécution de l’instruction
ACC  (ACC) NOP (R1) // 20  ACC CO  (CO) + 1 // CO  1

48 3. Les mémoires Une mémoire est un dispositif capable:
Définition Une mémoire est un dispositif capable: d’enregistrer, de conserver et de restituer des informations (instructions et variables). Les informations peuvent être écrites ou lues. Il y a écriture lorsqu'on enregistre des informations en mémoire, Il y a lecture lorsqu'on récupère des informations précédemment enregistrées.

49 Caractéristiques d’une mémoire
La capacité (taille de la mémoire) c’est le nombre total de bits que contient la mémoire. Elle s’exprime souvent en octet. Temps d’accès temps qui s’écoule entre une demande de lecture ou d’écriture et son accomplissement. Cycle mémoire: il représente l'intervalle minimum entre 2 accès successifs à la mémoire. Cycle > temps d’accès Car besoin d’opérations supplémentaires entre 2 accès (stabilisation des signaux, synchronisation ...)

50 Volatilité Elle caractérise la permanence des informations dans la mémoire. L'information stockée est volatile si elle risque d'être perdue suite à un défaut d'alimentation électrique (Ex. le contenu d’une mémoire volatile est effacé lorsqu’on éteint l’ordinateur) et non volatile dans le cas contraire (elle garde de l’information dans tous les cas). Débit Nombre d’octets ou bits pouvant être lus ou écrits par secondes.

51 Méthodes d’accès Accès séquentiel Accès direct
Pour accéder à une information on doit parcourir toutes les informations précédentes Accès lent Exemple : bandes magnétiques (K7 vidéo) Accès direct Chaque information a une adresse propre On peut accéder directement à chaque adresse Exemple : mémoire centrale Accès associatif/par le contenu Une information est identifiée par une clé On accède à une information via sa clé Exemple : mémoire cache

52 Hiérarchie de mémoire L’idéale c’est l’utilisation d’une mémoire rapide de grande capacité. Problème: les mémoires de grande capacité sont souvent très lente et les mémoire rapides sont très chères. Afin d’obtenir le meilleur compromis coût-performance, on définie donc une hiérarchie mémoire. On utilise des mémoires de faible capacité mais très rapide pour stocker les informations fréquemment utilisées par le microprocesseur. On utilise des mémoires de capacité importante mais beaucoup plus lente pour stocker les informations les moins utilisées par microprocesseur.

53 Registre Mémoire cache Mémoire principale Mémoire de masse < 400 octets Jusqu’à 4 Mo Capacité Vitesse Jusqu’à 4 Go 500 Go

54 Les registres sont les éléments de mémoire les plus rapides
Les registres sont les éléments de mémoire les plus rapides. Ils sont situés au niveau du processeur et servent au stockage des opérandes et des résultats intermédiaires. La mémoire cache est une mémoire rapide de faible capacité destinée à accélérer l’accès à la mémoire centrale en stockant les données les plus utilisées. La mémoire principale est l’organe principal de rangement des informations. Elle contient les programmes (instructions et données) et est plus lente que les deux mémoires précédentes. La mémoire de masse est une mémoire périphérique de grande capacité utilisée pour le stockage permanent ou la sauvegarde des informations (disque dur, CDROM, DVD).

55 Mémoires à semi-conducteurs (1/2)
Les mémoires mortes (ROM: Read Only Memory) Permettent de conserver des informations de façon permanente même lorsque l'alimentation électrique est interrompue (mémoires non volatiles) Accès en lecture seule (Modification impossible) L’inscription des données en mémoire est appelée programmation. Il existe plusieurs types de ROM: ROM PROM EPROM EEPROM Mémoire Flash.

56 La ROM Elle est programmée par le fabricant et son contenu ne peut plus être ni modifié, ni effacé par l'utilisateur.  Mémoire non volatile.  Mémoire rapide.  Modification impossible.  Coût élevé . La PROM: C’est une ROM qui peut être programmée une seule fois par l'utilisateur (Programmable ROM).  Coût relativement faible

57 L’ EPROM (Erasable Programmable ROM)
Elles sont des ROM que l'on peut programmer, effacer et reprogrammer.  Reprogrammable et non Volatile.  Impossible de sélectionner une seule cellule à effacer.  L’écriture est beaucoup plus lente que sur une RAM  Coût élevé L’EEPROM (Electically EPROM) Est une mémoire programmable et effaçable électriquement.  Comportement d'une RAM non Volatile.  Programmation et effacement mot par mot possible.  Très lente pour une utilisation en RAM.  Coût de réalisation. Mémoire flash le contenu est effacé électriquement et plus rapidement que sur les EEPROM

58 Mémoires à semi-conducteurs (2/2)
Les mémoires vives (RAM: Random Acces Memory) Réalisées à base de semi-conducteurs. Accès en lecture et écriture. Mémoires à accès aléatoire (RAM : Random Acces Memory), c'est-à-dire que le temps d'accès à l'information est indépendant de sa place en mémoire. Mémoires volatiles : la conservation de son contenu nécessite la permanence de son alimentation électrique. Un temps d’accès moyen mais plus rapide que les mémoires magnétiques. Pour la communication avec les autres organes de l’ordinateur, la mémoire vive utilise les bus ( bus d’adresses et bus de données)

59 Types des mémoires vives 1/2
Il existent deux grandes familles des mémoires vives : les mémoires statiques (SRAM) et les mémoires dynamiques (DRAM). Mémoires statiques : elle sont construites à base de bascules, elles possèdent un faible taux d’intégration mais un temps d’accès rapide (mémoire cache).  très rapides.  Coût élevé.

60 Types des mémoires vives 2/2
Mémoires dynamiques: elle sont construites à base de condensateurs. Ces mémoires possèdent un très grand taux d’intégration, elle sont plus simples que les mémoires statiques mais avec un temps d’accès plus long. Le condensateur se décharge avec le temps et l'information est perdue si la charge n'est pas rafraichie périodiquement (mémoire centrale de l’ordinateur).  Capacité importante.  Coût moins élevé.  moins rapides.

61 Vue logique de la mémoire centrale
Une adresse Un mot mémoire stocke une information sur m bits. un mot mémoire contient plusieurs cellules mémoire. Une cellule mémoire stock 1 seul bit Chaque mot possède sa propre adresse. Une adresse est un numéro unique qui permet d’accéder à un mot mémoire. Les adresses sont séquentielles (consécutives) La taille de l’adresse (le nombre de bits) dépend de la capacité de la mémoire. 0000 0001 0002 0003 …… FFFF Contenu d’une case mémoire

62 Structure matricielle
Lignes de mots 2n mots Le décodeur reçoit une adresse codée sur n bits. A la sortie du décodeur nous allons avoir une seule sortie qui est active  Cette sortie va nous permettre de sélectionner un seul mot mémoire.

63 Opération de lecture: 3 1 2

64 Opération d’écriture:
2 1 3

65 Comment calculer la capacité d’une MC ?
Soit n la taille du bus d’adresses Soit m la taille du bus de données (la taille d’un mot mémoire ) On peut exprimer la capacité de la mémoire centrale soit en nombre de mots mémoire ou en bits ( octets, kilo-octets,….) La capacité = 2n Mots mémoire La capacité = 2n x m Bits Exemple : Dans une mémoire la taille du bus d’adresses n=14 et la taille du bus de données m=4. Calculer la capacité de cette mémoire ? C=214 = Mots mémoire C= 214 * 4 = Bits = 8192 Octets = 8 Ko

66 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. Problèmes La mémoire cache est de petite taille Ne peut donc pas y stocker tout un programme et ses données Solutions Algorithmes pour « deviner » et mettre dans le cache les données/instructions avant que le CPU en ait besoin

67 Objectifs et principes du cache
Homme = Unité de calcul Le bureau = Mémoire cache La bibliothèque = Mémoire centrale

68 Mémoire cache : principe
L'info cherchée est-elle dans le cache ? Oui: (a) ramener l'info dans le processeur Non: (2) chercher l'info dans la mémoire centrale L'info est-elle en mémoire centrale? Oui : (b) ramener l'info dans le cache , puis dans le processeur (a) Non: ….

69 Mémoire cache : Principe de localité
Localité temporelle Une donnée référencée à un temps t aura de très fortes chances d’être référencée dans un futur proche (t+1, t+2, …) Il est intéressant de stocker dans le cache une donnée à laquelle le processeur à récemment accédée. 1: load R3 2: add R2 3: load R4 4: sub #1 5: jnz 2 Ce principe n’est pas vrai à 100% ! Premier accès aux instructions 2, 3, 4, 5  en MC Les 4 accès suivants s’effectuent À partir du cache

70 Mémoire cache : Principe de localité
Localité spatiale Si une donnée est référencée à un temps t, alors il y a de très fortes chances que les données voisines le soient dans un futur proche On ramène dans le cache, l’information qui ne s’y trouve pas + un ensemble de plusieurs cases mémoires voisines. Ce principe n’est pas vrai à 100% ! for i:=0 to N do somme := somme + A[i];

71 A Si (A) présent Alors Charger processeur avec (A) Sinon Charger cache avec (A) et ses voisines

72 Mémoire cache : Performances
Soient h la probabilité de succès Tc le temps d’accès au cache Tm le temps de lecture d’un bloc de mots en mémoire centrale Td le temps d’accès à un mot en mémoire centrale h Tc Tm Td Teff 0;9 1 20 5 3 0,8 0,7 7 alors Teff le temps effectif pour accéder à une information Teff = (h ×Tc) + [(1 –h) × (Tm + Tc)] Teff = (0,9 x 1) + [(1 – 0,9) x (20 + 1)] = 0,9 + [0,1 x 21] = 0,9 + 2,1

73 Accès par lignes mémoire
Plus de performance Augmente le taux de succès  Augmentation de la taille de la mémoire cache Mais, ne gagne pas forcément en performance car augmentation de taille  augmentation du temps d’accès Principe Les échanges d’informations entre mémoire de niveaux différents se font par blocs d’adresses consécutives: une ligne mémoire pas beaucoup plus coûteux de lire une ligne qu’un seul mot et s’adapte bien au principe de localité spatiale

74 Structure cache/mémoire principale

75 Organisation mémoire La mémoire cache possède x blocs
La mémoire centrale possède y blocs y >> x

76 Principe général L’UC veut faire référence à un bloc X2 dans le cache
Recherche de X2 dans le cache Défaut de cache

77 Placement des données dans le cache
Pour le processeur la présence de la mémoire cache est transparente Le CPU demande toujours à accéder à une adresse en mémoire centrale (pour lecture ou écriture) La mémoire cache contient des lignes de mots de la mémoire centrale Les blocs ont généralement entre 4 et 128 octets et sont tous de même taille dans un cache donné. La mémoire centrale et la mémoire cache ont impérativement les même tailles de blocs.

78 Adressage L’adresse fournie par le processeur peut être scindée en deux parties : le N° de bloc et l’adresse dans le bloc. Exemple sur 32 bits et blocs de 8 octets

79 Etiquettes À chaque bloc on associe :
Une étiquette : La valeur de cette étiquette permettra de décider si un bloc donné est effectivement dans le cache ou non. Les étiquettes sont stockées dans un répertoire en même temps que les données

80 Mécanisme de correspondance
Où placer une ligne de la mémoire principale dans le cache? Mémoire Principale Cache associatif par ensemble de bloc le bloc a un nombre de choix limité Le bloc peut être stocké n’importe où dans le cache Un bloc ne peut être stocké que dans un seul endroit. Cache à correspondance directe Cache associatif

81 Correspondance associative
Une ligne de la mémoire cache correspond à n'importe quelle bloc de la mémoire centrale Pour déterminer si un bloc se trouve dans le cache, on doit simultanément examiner chaque étiquette de ligne à la recherche d’une correspondance.

82 Correspondance associative

83 Correspondance associative
Exemple Bloc de 4 octets Mémoire cache de 64 Ko 64 Ko = 64 x 1024 octets = 65536 65536 / 4 = lignes Mémoire centrale de 16 Mo doit être gérée via les 64 Ko de cache et ses lignes Elle contient 4M de blocs de 4 octets chacun

84 Longueur de l’adresse:
Chaque octet étant directement adressable par une adresse 24 bits (224 = 16M) Etiquette Nombre de blocs dans la mémoire principale 4M L’étiquette : 22 bits (222 = 4M). Numéro d’octet Nombre d’octets par bloc 4 : 2 bits (22 = 4)

85 Adresse de la mémoire principale
Soit l’adresse mémoire (hexadécimal) : 16339C 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Etiquette (22 bits) = 058CE Mot (2bits)

86

87 Comment un bloc est-il trouvé?
Quand une donnée est placée dans le cache, le numéro de bloc de l’adresse fournie par le processeur est placé dans le champ étiquette de la rangée où la donnée est placée. À chaque accès mémoire, les comparateurs comparent simultanément le n° de bloc de l’adresse demandée avec toutes les étiquettes se trouvant dans le cache. Si égalité  Succès Sinon  Échec

88

89 Correspondance associative
Avantages Très souple et efficace pour gérer les lignes de manière optimale en terme de succès d'accès. Inconvénient Doit au pire parcourir toutes les lignes du cache pour savoir si la ligne cherchée s'y trouve ou pas. Taux de succès de l'ordre de 90 à 95%

90 Correspondance directe (1/2)
L lignes en cache Le bloc j en mémoire centrale sera géré par la ligne i en cache avec i = j modulo L A partir de l'adresse d'une ligne en mémoire on sait directement dans quelle ligne du cache elle doit se trouver

91

92 Correspondance directe (2/2)
Avantages On sait immédiatement où aller chercher la ligne Accès très rapide à la ligne Inconvénients Devra parfois décharger et charger souvent les mêmes lignes alors que d'autres lignes sont peu accédées Peu efficace en pratique Taux de succès entre 60 et 80%

93 Avantages Correspondance mixte
Solution intermédiaire aux approches directe et associative. le cache se divise en v ensembles, composés chacun de k lignes. Avantages Plus souple et efficace que la correspondance directe Taux de succès : 80% à 90%

94

95 Cohérence données cache/mémoire
Lecture/écriture en mémoire centrale via cache Le cache contient une copie d'une partie de la mémoire centrale : nécessité de cohérence mutuelle Opérations de lecture/écriture sont effectuées dans le cache avec répercussion sur la mémoire centrale Opération de lecture Pas de modification de valeurs : toujours cohérent Opération d'écriture Modification du contenu du cache : la partie équivalente en mémoire centrale n'est plus cohérente

96 Cohérence cache/mémoire en écriture
2 techniques : Écriture simultanée (write-through) Quand écrit un mot d'une ligne du cache, on écrit simultanément le mot de la même ligne en mémoire centrale Écriture plus longue car accès mémoire centrale Écriture différée ou réécriture (write-back) On n'écrit le mot que dans la ligne du cache Quand cette ligne est supprimée du cache, on l'écrit en mémoire centrale

97 Cohérence données cache/mémoire
Avantage du write-back Limitation des écritures en mémoire centrale Inconvénient du write-back Problème si d'autres éléments accèdent à la mémoire en écriture Périphériques en mode DMA (Direct Memory Access) Multi-processeurs avec mémoire commune Nécessite alors des algorithmes supplémentaires pour gérer la cohérence


Télécharger ppt "Structure Machine Haouam M. Yassine 2013-2014."

Présentations similaires


Annonces Google