210 likes | 378 Views
Un programme. Algorithme permettant au processeur de s'alimenter: I := 0; Répéter Chercher l'instruction qui est située à l'adresse I Décoder cette instruction Exécuter cette instruction I := I + 1; Jusqu'à la fin du programme Ces trois phases portent des noms particuliers:.
E N D
Un programme Algorithme permettant au processeur de s'alimenter: I := 0; Répéter Chercher l'instruction qui est située à l'adresse I Décoder cette instruction Exécuter cette instruction I := I + 1; Jusqu'à la fin du programme Ces trois phases portent des noms particuliers: FETCH toujours réalisées DECODE de la même manière EXECUTE dépendante de l'instruction
Les éléments du processeur MAR PC + 1 Mémoire IR MBR CODE OPERANDES D0 Unité de contrôle Phase FETCH Phase EXECUTE (La phase execute utilise aussi certains chemins communs à fetch) UAL Z || N || C || V
Les éléments du processeur • Des registres: une cellule de stockage d'information • PC (Program Counter) : indique l'adresse de la prochaine instruction à traiter • IR (Instruction Register) : stocke l'instruction à traiter • MAR (Memory Adress Register) : stocke l'adresse du prochain accès en mémoire • MBR (Memory Buffer Register) : stocke la dernière valeur lue ou la dernière valeur à écrire • D0 (Data Zéro, appelé aussi accumulateur) : stocke une donnée • Une UAL (Unité Arithmétique et Logique) • effectue les calculs de base : +, ET, OU, NON • Une unité de contrôle • organise la circulation des infos à l'intérieur du microprocesseur. Phase FETCH : PC -> MAR *MAR -> MBR MBR -> val + 0 UAL -> IR PC + 1 -> PC
La mémoire Soit une mémoire d'une capacité C donnée en octets ou ko. Plusieurs manières de l'organiser; piqûre de rappel : avec N : taille du bus d'adresse M : taille du bus de données (en bits) 8 : coefficient entre bits et octets
Pyramide de la mémoire rapide qqs octets économique registres CACHE 512 ko volatile 512 Mo RAM Disques durs Persistante 80 Go 10 Go CD / DVD Bande magnétique (DAT,DLT) 300 Go 100 To Systèmes complets d'archivage (robots)
Principe du cache Objectif : améliorer les performances de la machine. Notations : tglob = temps d'accès à une donnée tm = temps d'accès à la mémoire tc = temps d'accès au cache Cm = capacité de la mémoire Cc = capacité du cache sans utiliser de cache, on a : tglob = tm (on ne traite que la mémoire physique, pas la virtuelle)
Principe du cache Comme de la mémoire 'simulant' la RAM le processeur adresse une certaine quantité de mémoire Cm, mais ce n'est pas forcément la mémoire qui possède cette information. Le cache peut en avoir une copie, auquel cas il répond à la place de la mémoire. Beaucoup plus intéressant ! RAM CACHE CPU
CPU transmet une adresse pour accéder à une donnée en RAM • Cette adresse va d'abord être présentée au cache : • s'il possède la donnée correspondante : il la transmet au CPU • SUCCES ou CACHE HIT • sinon : la donnée est en mémoire, il faut la faire transiter depuis la RAM • ECHEC ou CACHE MISS • Avec l’utilisation d’un cache, le temps d’accès à la mémoire est de : tglob = h.tc+(1-h)(tc+tm)
Implémentation des caches • les caches associatifs : chaque emplacement du cache contient une association adresse/donnée • les caches à correspondance directe : chaque emplacement du cache ne correspond qu'à un nombre restreint d'adresses Localité spatiale : lorsqu'un programme accède à une certaine adresse, il est probable qu'il accède à des adresses proches de celle-ci : transfert de plusieurs données dans le cache lors d'un MISS Localité temporelle : lorsqu'un programme accède à une certaine adresse, il est probable qu'il y accède de nouveau peu de temps après : éliminer les données les plus anciennes d'abord (LRU)
Échange de données Bus d’adresses Micro-processeur Mémoire Bus de données commandes RAM CPU BUS
Échanges CPU/Mémoire bus d ’adresse, bus de données et signaux de commande pour piloter l’esclave Maître : CPU Esclave : Mémoire Lecture : CPU fournit adresse ou lire : via le bus d ’adresse commande READ via signaux de commande RAM fournit valeur stockée via le bus de données Ecriture : CPU fournit adresse ou lire : via le bus d ’adresse commande WRITE via signaux de commande valeur à écrire via le bus de données
Types de BUS BUS synchrone : possède sa propre fréquence, synchronisation des dispositifs par rapport au BUS utilisation des fronts du signal d'horloge du bus comme points de repère toute transaction occupe un nombre entier de cycles de bus Signal WAIT, déclenché quand bus adresse ok + RD + MREQ ok BUS asynchrone : pas d'horloge les points de repère sont fournis pas des signaux annexes de synchronisation. Chaque élément pilote un tel signal de synchronisation signal MSYN : synchronisation maître signal SSYN : synchronisation esclave Dans les deux cas: MREQ on travaille avec la mémoire RD en lecture WR en écriture
Chronogrammes de BUS MREQ MSYN SSYN RD Bus asynchrone Les signaux ADRESSES DONNEES
Chronogrammes de BUS Bus synchrone, fréquence 40 MHz C2 C1 C3 ADRESSES MREQ RD WAIT DONNEES
Mode bloc (bus synchrone) Transfert de plusieurs données à la suite : une seule adresse fournie (sinon : plusieurs transactions) => valeurs localisées à des adresses successives Ajout d'un signal supplémentaire BLOCK pour demande de lectures successives. La mémoire indique les cycles de wait-state, puis transmet les données demandées à raison d'une par cycle. Comparaison de performances : Mode normal: N transactions, chacune de C cycles. C : 1 cycle de préparation W cycle(s) d'attente (wait state) 1 cycle de lecture N.C = N (W + 2) mode 'bloc' : 1 transactions, consommant C' cycles. C' : 1 cycle de préparation W cycle(s) d'attente (wait state) N cycles de lecture (car mode bloc) 1 . C ’ = 1 + W + N
Limites des familles de BUS Bus synchrone : présence de cycles transactions en nombre entiers de cycles coût peu élevé : synchro faite par le bus. Efficace pour une gamme de fréquence Bus asynchrone : transactions réglées au plus vite signaux supplémentaires coût élevé : synchro faite par les périphériques ! Efficace quelle que soit le débit du périphérique
Performances de bus Soit un bus synchrone de fréquence F(en MHz), et d'une largeur de N bits (N fils de données). Fréquence F : nombre de changements d'état par seconde, chaque ligne de bus est indépendante : Débit : Dmax = F. N (en bits/s-1). Autre exemple avec un dispositif vidéo : Quelle doit être la bande passante d'un bus vidéo pour réaliser un affichage de 60 images/s avec une résolution de 1024 768 en 32 bits ? combiend'octets occupe une image 1024 768 en 32 bits ? 1024 768 4 = 3 Mo ! (60 images de 3 Mo) /s = 180 Mo/s
Gestion de bus, conflits • Réalisation basée sur 3 signaux : • BR : Bus Request : demande de bus de la part des maîtres potentiels • BA/BG : Bus Acknowledge/Bus Grant : attribution de bus • BB : Bus Busy : bus occupé • Arbitrage de l'accès au bus nécessaire car : • Plusieurs éléments communicants • un seul canal un seul dialogue à un instant donné
Le Daisy Chaining Les éléments désirant prendre le contrôle du bus émettent un signal BR :la ligne "bus request" arrivant à l'arbitre de bus réalise un OU câblé. L'arbitre de bus ne voit donc qu'une requête globale : BR Bus Grant ... Périph 1 Périph 2 Périph n Arbitre centralisé Bus Request Bus Busy
Requête - Autorisation Chaque module connecté au bus dispose de ses propres lignes BG et BR reliées au contrôleur de bus avantages : absence de délai de réponse, de sensibilité aux pannes d'un module, et le caractère non statique de la priorité inconvénient : multiplication des lignes de contrôle Périph 1 Périph 2 Périph 3 Arbitre centralisé Bus Busy