Un programme Algorithme permettant au processeur de s'alimenter: 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 PC Mémoire MAR MBR D0 UAL IR CODE OPERANDES Unité de contrôle + 1 Z || N || C || V Phase FETCH Phase EXECUTE (La phase execute utilise aussi certains chemins communs à fetch)
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
Bande magnétique (DAT,DLT) Pyramide de la mémoire économique qqs octets rapide registres 512 ko CACHE volatile 512 Mo RAM 80 Go Disques durs Persistante 10 Go CD / DVD Bande magnétique (DAT,DLT) 300 Go 100 To Systèmes complets d'archivage (robots)
(on ne traite que la mémoire physique, pas la virtuelle) 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 CPU CACHE
tglob = h.tc+(1-h)(tc+tm) 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 Micro-processeur Mémoire Bus d’adresses Bus de données commandes CPU RAM 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 : BUS asynchrone : Dans les deux cas: 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 Bus asynchrone Les signaux ADRESSES MREQ RD MSYN DONNEES SSYN
Bus synchrone, fréquence 40 MHz Chronogrammes de BUS Bus synchrone, fréquence 40 MHz C1 C2 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
Débit : Dmax = F. N (en bits/s-1). 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 ? combien d'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