architecture des ordinateurs cours 2 structure d’un ordinateur : registres, ual, bus
DESCRIPTION
Architecture des ordinateurs cours 2 Structure d’un ordinateur : registres, UAL, bus. Agata Savary , IUT de Blois, D épartement GTR, 1 e année , 200 4 -200 5. Processeur. Unité de contrôle. Chemin de données. UAL. Registres. Processor (CPU). Structure d’un ordinateur simple. - PowerPoint PPT PresentationTRANSCRIPT
Architecture des ordinateurs
cours 2
Structure d’un ordinateur :registres, UAL, bus
Agata Savary, IUT de Blois, Département GTR, 1e année, 2004-2005
A. SAVARY IUT Blois GTR1, 2004/05 2
Structure d’un ordinateur
simple
Mémoire principale
Entrées
Unité de contrôle
Chemin de données
Processeur
Registres
UALSorties
Processor (CPU)
Control unit
Datapath
UAL = Unité Arithmétique et Logique (Arithmetic and Logic Unit = ALU)
ALU
Registers
Main memory Input devicesOutput devices
Bus
Le processeur – couche matérielle(Sur l’exemple d’un simulateur de processeur JASPer)
JASPer - Just Another Simulated Processor
http://brittunculi.com/jasp/
A. SAVARY IUT Blois GTR1, 2004/05 4
Processeur (Unité centrale, UC)
• Unité de contrôle (unité de commande) = “le cerveau” du processeur:– charge l’instruction courante située en mémoire– décode l’instruction (i.e. détermine le flux de données dans le chemin de
données)
• Chemin données = “les muscles” du processeur :– Une ou plusieurs UAL effectuent les opérations indiquées par l’instruction
(addition, décalage, etc.)– Les registres stockent les résultats temporaires :
• compteur de programme (program counter = PC) pointe la prochaine instruction• registre d’instruction (instruction register = IR) contient l’instruction en cours
d’exécution• nombreux registres généraux – stockent les résultats intermédiaires
– Les bus (internes) interconnectent les registres et l’UAL
Central processing unit (CPU)
A. SAVARY IUT Blois GTR1, 2004/05 5
Processeur – example : JASPerCompteur de programme
Unité de contrôle
Registre d’instruction
UAL
Bus
Registres généraux
A. SAVARY IUT Blois GTR1, 2004/05 6
Registres
Logique séquentielleSynchronisationRegistres JASPer
A. SAVARY IUT Blois GTR1, 2004/05 7
Rappel sur les circuits logiques
On distingue 2 types de circuits (blocs) logiques :
• Circuits combinatoires = circuits sans mémoire :
– les sorties ne dépendent que des entrées courantes
– exemples : multiplexeur, démultiplexeur, codeur, décodeur, décaleur, additionneur, … (UAL)
• Circuits séquentiels = circuits avec mémoire :
– la mémoire (l’élément d’état) stocke l’état interne du circuit
– les sorties de tels circuits peuvent dépendre à la fois des entrées courantes et de l’état interne du circuit
– exemples d’éléments d’état : bascule RS, bascule D, flip-flop D
– exemples de circuits séquentiels : registre, compteur
A. SAVARY IUT Blois GTR1, 2004/05 8
Rappel sur les horloges
période de l’horloge (temps du cycle)
frontmontant
1
0 temps
Fonctionnement idéal :
frontdescendant
Fonctionnement réel :
Durée du front non nulle,mais très courte
1
0
A. SAVARY IUT Blois GTR1, 2004/05 9
Rappel sur le flip-flop
Flip-flop DExample de mise en
œuvre Interface
• Deux bascules D sont montées en série. Leurs entrées horloge sont opposées.
• L’état d’un bistable est stable (mémorisé) pendant un cycle d’horloge
• L’état peut changer (prendre la valeur de D) uniquement sur le front descendant de l’horloge.
Q2D2
CK2
D Q
CKFF
Q1D1
CK1
Flèche inversée :“contrôlé par le
front descendant”
A. SAVARY IUT Blois GTR1, 2004/05 10
Communication asynchrone
• A partir de quel moment peut-on considérer que la sortie S est valable et peut être enregistrée ?
Il faut attendre au moins le temps égal au temps de traversée du circuit.
• A partir de quel moment les entrées (A, B,C) du circuit peuvent-elles changer ? Il faut attendre le temps de traversée du circuit combinatoire + le temps de
traversée de la bascule
Imaginons un circuit cominatoire dont le résultat est enregistré dans un élément d’état “transparent” (e.g. une bascule D avec CK=1)
SQD
CK1
Conclusion :Les évènements doivent
être synchronisés, i.e. arriver à des moments
contrôlables.
A. SAVARY IUT Blois GTR1, 2004/05 11
Communication synchrone• Un flip-flop n’est pas transparent : sa sortie ne change que sur le
front d’impulsion d’horloge (soit toujours sur le front montant, soit toujours sur le front descendant).
• Ainsi il constitue la base d’une communication synchrone : les évenements de changement d’état ne peuvent avoir lieu qu’aux moments :
– précis (les fronts d’horloge),
– réguliers (basés sur le temps du cycle)
– de très courte durée (durée du front d’horloge)• Une horloge commune à un groupe d’éléments d’état garantie que
ces éléments sont mis à jour au même moment (c’est le cas idéal; en réalité les entrées CK de différents éléments peuvent subir un désalignement ; dans ce cas le temps de cycle doit être prolongé de la durée du désalignement)
A. SAVARY IUT Blois GTR1, 2004/05 12
Circuitcombinatoire
1
D1Q1D1
Interaction des circuits combinatoires et des éléments d’état
Les circuits combinatoires effectuent des calculs.
Les éléments d’état sauvegardent les résultats intermédiaires.
D2
• Au premier front descendant d’horloge les valeurs présentées sur D1i s’enregistrent dans Q1i.
• Pendant le cycle suivant les nouvelles valeurs de Q1i traversent le premier circuit combinatoire (CC1) et les sorties de CC1 sont présentées aux entrées D2i avant le front descendant suivant
• Au front descendant suivant les valeurs de D2i s’enregistrent dans Q2i
• Pendant le cycle suivant les valeurs de Q2i traversent CC2 et sont présentées sur D3i, etc.
D1Q1D1D1
Q1D1D1Q1iD1i
Circuitcombinatoire
2
D1Q1D1D1
Q1D1D1Q1D1D1
Q2iD2iD2
D1Q1D1D1
Q1D1D1Q1D1D1
Q3iD3i
A. SAVARY IUT Blois GTR1, 2004/05 13
Construction d’un registre
• Registre 8 bits = ensemble de 8 flip-flops
• L’horloge est commune pour tous les flip-flops
• L’entrée commune CLR force l’initialisation du registre à 0000 0000.
Amlificateurde puissance
Broches Prise de terre(tention basse)
Tention haute
A. SAVARY IUT Blois GTR1, 2004/05 14
Registres JASPer
• PC = compteur de programme ; contient l’adresse de l’instruction suivante
• SP (stack pointer) = pointeur de la pile de programme (elle sert à sauvegarder des paramètres et des variables lors des appels de procédures et des interruptions/exceptions)
• IR = registre de l’instruction ; contient l’instruction en cours d’exécution
• A, B = registres généraux
A. SAVARY IUT Blois GTR1, 2004/05 15
Registres de l’UAL (JASPer)
• ALUX, ALUY = arguments de l’opération UAL
• R = résultat de l’opération UAL
• PSR (program status register) = registre de statut du programme ; contient des “drapeaux” (flags) d’un bit chacun qui donnent des informations sur la dernière opération exécutée par l’UAL :
– C (carry) - la dernière opération a provoqué une retenue
– Z (zero) - la dernière opération a donné résultat 0
– N (negativ) - la dernière opération a donné un résultat négatif
– V (overflow) - la dernière opération a donné un débordement
A. SAVARY IUT Blois GTR1, 2004/05 16
Registres de mémoire (JASPer)
• MAR (memory address register) = registre d’adresse mémoire
• MDR (memory data register) = registre de donnée mémoire
– Lors d’une lecture mémoire MAR contient l’adresse de la case mémoire à lire, MDR reçoit la donnée de l’adresse indiquée.
– Lors d’une écriture mémoire MAR contient l’adresse de la case mémoire dans laquelle l’on veut écrire, MDR contient la donnée que l’on veut écrire.
A. SAVARY IUT Blois GTR1, 2004/05 17
Circuits à registre (JASPer)
• CU = circuit de l’unité de contrôle; contient un registre pour le “op-code”, le code de l’opération à effectuer
• INC = circuit contenant la constante 1 pour l’incrémentation du PC au début de chaque nouvelle instruction
A. SAVARY IUT Blois GTR1, 2004/05 18
Unité Arithmétique et Logique(UAL)
UAL
A. SAVARY IUT Blois GTR1, 2004/05 19
Négation logique (bit par bit) NOT AET logique (bit par bit) A AND BOU logique (bit par bit) A OR BAddition arithmétique A ADD BSoustraction arithmétique A SUB BDécalage à gauche SL ADécalage à droite SR A… …
Rôle d’une UALNous voudrions pouvoir effectuer les opérations arithmétiques (en complément à 2) et logiques suivantes pour deux nombres A et B :
Ces opérations sont effectuées par l’unité arithmétique et logique (UAL).
A. SAVARY IUT Blois GTR1, 2004/05 20
Opérations arithmétiques et logiques - exemples
A = 1 1 1 0 1 0 1 1NOT A = 0 0 0 1 0 1 0 0
A = 1 1 1 0 1 0 1 1B = 1 0 1 0 1 1 0 0
A AND B = 1 0 1 0 1 0 0 0
A = 1 1 1 0 1 0 1 1B = 1 0 1 0 1 1 0 0
A OR B = 1 1 1 0 1 1 1 1
A = 1 1 1 0 1 0 1 1B = 1 0 1 0 1 1 0 0
A ADD B = 1 0 0 1 0 1 1 1
A = 1 1 1 0 1 0 1 1B = 1 0 1 0 1 1 0 0
A SUB B = 0 0 1 1 1 1 1 1
A = 1 1 1 0 1 0 1 1SL A = 1 1 0 1 0 1 1 0
A = 1 1 1 0 1 0 1 1SR A = 1 1 1 1 0 1 0 1
A. SAVARY IUT Blois GTR1, 2004/05 21
Circuit qui réalise A ADD B (1/2)Additionneur complet 1 bit
Mise en œuvre Interface
• Portes XOR, AND et OR sont utilisées comme éléments de base
ai bi RetEntri Sommei RetSorti
0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1
+RetSorti RetEntri
bi ai
SommeiRetSorti RetEntri
aibi
Sommei
A. SAVARY IUT Blois GTR1, 2004/05 22
Unité logique ET/OU/NONMise en œuvre
Interface
• Le décaleur se sert des portes OU ...
• Le décaleur prend en entrée un nombre sur 16 bit et un bit de contrôle qui l’informe si le décalage doit se faire à gauche ou à droite.
• Il produit en sortie le même nombre décalé d’un bit dans le bon sens.
Décaleur 16 bitsMise en œuvre
Interface
• Le décaleur se sert des portes OU ...
• Le décaleur prend en entrée un nombre sur 16 bit et un bit de contrôle qui l’informe si le décalage doit se faire à gauche ou à droite.
• Il produit en sortie le même nombre décalé d’un bit dans le bon sens.
Circuits arithmétiques et logiques
Additionneur 16 bitsMise en œuvre Interface
• 16 additionneurs 1 bit sont montées en série
• Chaque additionneur prend en entrée les 2 bits correspondants des opérandes et la retenue sortante de l’additionneur précédent
• L’additionneur 16 bits prend en entrée RE=0, et deux nombres 16 bits chacun. Il produit leur somme sur 16 bit ainsi qu’une éventuelle retenue du dernnier bit.
b15 a15 b1 a1 b0 a0
RS15 RE0RE15...RS1 RE1=RS0
s15 s1 s0
1616
16
A B
S
+RS RE
A. SAVARY IUT Blois GTR1, 2004/05 23
Construction d’une UAL 16 bitsUAL 16 bits
Mise en œuvre Interface
• La sortie contie le résultats de l’opération déterminée par les bits Contrôle UAL.
UAL
1616
16+4Contrôle UAL
A B
Résultat
4
• 4 bits supplémentaires pour chaque sortie correspondent à des drapeaux cf. TD)
ContrôleB A
16
±
Résultat
16
SHL/SHR
ET/OU/NON
MUX2 1 016+4 16+4 16+4
16+4
4
A. SAVARY IUT Blois GTR1, 2004/05 24
Bus
A. SAVARY IUT Blois GTR1, 2004/05 25
Bus
• Les bus du processeur = ensembles de conducteurs qui connectent les composants du processeur
• Une voie d’un bus peut transporter un bit d’information à la fois
• Il y a 3 types de bus (dans JASPer) :
• Bus de données (pour transport des données)
• Bus d’adresse (en bleu ; pour transport d’adresses mémoire)
• Bus de contrôle (en rouge ; pour transport des signaux de contrôle entre l’unité de contrôle et le chemin de données)
A. SAVARY IUT Blois GTR1, 2004/05 26
Contrôle d’accès à un bus de données commun (1/3)
Prenons l’exemple des registres A et B du processeur JASPer.
• Chacun peut (cf transp. 58)
– recevoir le contenu d’un autre registre
– envoyer son contenu vers un autre registre
• Chacun est constitué de 16 flip-flops
• Ils sont connectés à un bus d’entrée et un bus de sortie communs. Mais un bus ne peut transporter qu’une donnée à la fois.
Comment éviter les conflits d’accès aux bus ?
A. SAVARY IUT Blois GTR1, 2004/05 27
Contrôle d’accès à un bus de données (2/3)Choix entre deux registres 1 bit pour une lecture/écriture
• Lecture de Ai : AouB = …
• Lecture de Bi : AouB = …
• Ecriture dans Ai : EcrireAB = …, VersAouB = …
• Ecriture dans Bi :EcrireAB = …, VersAouB = …
D1D1D1QBiDBi
D1D1D1QAiDAi
0
1
MUX
AouB
Voie i d’unbus de données
EcrireAB
Décod
eur
0
1
VersAouB
Voie i d’unbus de données
A. SAVARY IUT Blois GTR1, 2004/05 28
Contrôle d’accès à un bus de données (3/3) Choix entre deux registres n bits pour une lecture/écriture
• Les bits correspondants des deux registres sont connectés comme sur le transparent précédent
• Le signaux de contrôle sont communs pour toutes les n paires de bits (ai,bi)
D1
Bus
de
donn
ées
Bus
de
donn
ées
D1D1
0
1
D1D1D1QBiDBi
D1D1D1QAiDAi
0
1
MUX
AouB
EcrireAB
Décod
eur
0
1
VersAouB
A. SAVARY IUT Blois GTR1, 2004/05 29
Pour la semaine de la rentrée
• Mini-contrôle en TD : lire les 2 premiers cours (terminologie ang. inclue)
A. SAVARY IUT Blois GTR1, 2004/05 30
1. (bb)2. (c)3. (d)4. (e,f,h)5. (q)6. (i)7. (a)8. (g)9. (k)
10. (x)11. (x,y)12. (b)13. (m,n,p,q, ,b
b, dd, cc)14. (r)15. (s)16. (t)17. (ee)
18. (u)19. (v)20. (j)21.
(w)
22. (l)23. (z,aa)24. (o)25. (cc)
Devoir 1 (histoire de l’informatique)
REPONSES