Un programme
description
Transcript of Un programme
Un programme
Algorithme permettant au processeur de s'alimenter:
I := 0;Répéter
Chercher l'instruction qui est située à l'adresse IDécoder cette instructionExécuter cette instructionI := I + 1;
Jusqu'à la fin du programme
Ces trois phases portent des noms particuliers:
FETCH toujours réaliséesDECODE de la même manière
EXECUTE dépendante de l'instruction
Les éléments du processeurPC
Mémoire
MAR
MBR
D0
UAL
IR
CODE OPERANDES
Unité de contrôle
+ 1
Z || N || C || V
Phase FETCHPhase 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 à traiterIR (Instruction Register) : stocke l'instruction à traiterMAR (Memory Adress Register) : stocke l'adresse du prochain accès en mémoireMBR (Memory Buffer Register) : stocke la dernière valeur lue ou la dernière valeur à écrireD0 (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.
PC -> MAR*MAR -> MBRMBR -> val + 0UAL -> IRPC + 1 -> PC
Phase FETCH :
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
8
.2 MC
N
Pyramide de la mémoire
registreséconomique rapide
RAM
Disques durs
CD / DVD
Bande magnétique (DAT,DLT)
Systèmes complets d'archivage (robots)
512 Mo
80 Go
10 Go
300 Go
100 To
qqs octets
volatile
Persistante
CACHE512 ko
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 !
CPU
RAM
CACHE
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)
Micro-processeur Mémoire
commandes
BUS
CPU RAM
Bus d’adresses
Bus de données
Échange de données
É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 BUSBUS 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émoireRD en lectureWR en écriture
Chronogrammes de BUS
Bus asynchrone
Les signaux
ADRESSES
MREQ
RD
MSYN
SSYN
DONNEES
ADRESSES
MREQ
RD
WAIT
DONNEES
C1C2 C3
Chronogrammes de BUSBus synchrone, fréquence 40 MHz
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
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).
Performances de bus
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
Arbitrage de l'accès au bus nécessaire car :
• Plusieurs éléments communicants
• un seul canal un seul dialogue à un instant donné
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é
Le Daisy Chaining
Arbitre centralisé
Périph 1 Périph 2 Périph n...
Bus Busy
Bus Grant
Bus Request
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
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
Arbitre centralisé
Périph 1 Périph 2 Périph 3
Bus Busy
Requête - Autorisation