BUS - Emilie Cravero

publicité
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
DECODE
toujours réalisées
de la même manière
EXECUTE
dépendante de l'instruction
Les éléments du processeur
MAR
PC
+
1
Mémoire
IR
CODE
MBR
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;
N
2 .M
C
piqûre de rappel :
8
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
qqs octets
économique
registres
512 ko
512 Mo
80 Go
10 Go
300 Go
100 To
rapide
CACHE
RAM
Disques durs
CD / DVD
Bande magnétique (DAT,DLT)
Systèmes complets d'archivage (robots)
volatile
Persistante
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
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
Microprocesseur
Bus de données
Mémoire
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 :
BUS asynchrone :
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
Dans les deux cas:
MREQ  on travaille avec la mémoire
RD  en lecture
WR  en écriture
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
Chronogrammes de BUS
Bus asynchrone
Les signaux
ADRESSES
MREQ
RD
MSYN
DONNEES
SSYN
Chronogrammes de BUS
Bus synchrone, fréquence 40 MHz
C1

ADRESSES
MREQ
RD
WAIT
DONNEES
C2
C3
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.
mode 'bloc' : 1 transactions, consommant C'
cycles.
C:
C' :
1 cycle de préparation
1 cycle de préparation
W cycle(s) d'attente (wait state)
W cycle(s) d'attente (wait state)
1 cycle de lecture
N cycles de lecture (car mode bloc)
 N.C = N (W + 2)
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 ?
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
Réalisation basée sur 3 signaux :
car :
• Plusieurs éléments communicants
• BR : Bus Request : demande de bus de la
part des maîtres potentiels
• un seul canal  un seul dialogue à un
instant donné
• BA/BG : Bus Acknowledge/Bus Grant :
attribution de bus
• BB : Bus Busy : bus occupé
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
Bus Request
Arbitre
centralisé
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
Périph 1
Périph 2
Périph 3
Arbitre
centralisé
Bus Busy
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
Téléchargement