A AND B

publicité
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
Processeur
Unité de contrôle
Processor
(CPU)
Control unit
Datapath
Structure d’un
ordinateur
simple
Output devices
Chemin de données
UAL
Registres
Main memory
Input devices
Entrées
ALU
Sorties
Mémoire
principale
Bus
Registers
UAL = Unité Arithmétique et Logique (Arithmetic and Logic Unit = ALU)
A. SAVARY
IUT Blois GTR1, 2004/05
2
Le processeur – couche matérielle
(Sur l’exemple d’un simulateur de processeur JASPer)
JASPer - Just Another Simulated Processor
http://brittunculi.com/jasp/
Processeur (Unité centrale, UC)
Central processing unit (CPU)
• 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
A. SAVARY
IUT Blois GTR1, 2004/05
4
Processeur – example : JASPer
Compteur de
programme
Bus
Registres
généraux
Registre
d’instruction
UAL
Unité de
contrôle
A. SAVARY
IUT Blois GTR1, 2004/05
5
Registres
Logique séquentielle
Synchronisation
Registres JASPer
A. SAVARY
IUT Blois GTR1, 2004/05
6
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
7
Rappel sur les horloges
1
Fonctionnement idéal :
0
temps
période de l’horloge
(temps du cycle)
front
montant
front
descendant
Fonctionnement réel :
1
0
Durée du front non nulle,
mais très courte
A. SAVARY
IUT Blois GTR1, 2004/05
8
Rappel sur le flip-flop
Flip-flop D
Example de mise en
œuvre
D
CKFF
D1 Q1
D2 Q2
CK1
CK2
• Deux bascules D sont
montées en série. Leurs
entrées horloge sont
opposées.
A. SAVARY
Interface
Q
Flèche inversée :
“contrôlé par le
front descendant”
• 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.
IUT Blois GTR1, 2004/05
9
Communication asynchrone
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)
S
1
D Q
CK
Conclusion :
Les évènements doivent
être synchronisés, i.e.
arriver à des moments
contrôlables.
• 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
A. SAVARY
IUT Blois GTR1, 2004/05
10
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
11
Interaction des circuits combinatoires
et des éléments d’état
Q
DD11 QQ111
D
1 Q1i
D1i
1
Circuit
combinatoire
1
Q
DD11 QQ111
D
D22i
1 Q2i
1
Circuit
combinatoire
2
Q
DD11 QQ111
D
D23i
1 Q3i
1
• 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.
Les circuits combinatoires effectuent des calculs.
Les éléments d’état sauvegardent les résultats intermédiaires.
A. SAVARY
IUT Blois GTR1, 2004/05
12
Construction d’un registre
Tention haute
Amlificateur
de puissance
• Registre 8 bits = ensemble de 8 flip-flops
Broches
• L’horloge est commune pour tous les flip-flops
• L’entrée commune CLR force l’initialisation du registre à 0000 0000.
A. SAVARY
IUT Blois GTR1, 2004/05
Prise de terre
(tention basse)
13
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
14
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
15
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
16
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
17
Unité Arithmétique et Logique
(UAL)
UAL
A. SAVARY
IUT Blois GTR1, 2004/05
18
Rôle d’une UAL
Nous voudrions pouvoir effectuer les opérations arithmétiques (en
complément à 2) et logiques suivantes pour deux nombres A et B :
Négation logique (bit par bit)
ET logique (bit par bit)
OU logique (bit par bit)
Addition arithmétique
Soustraction arithmétique
Décalage à gauche
Décalage à droite
…
NOT A
A AND B
A OR B
A ADD B
A SUB B
SL A
SR A
…
Ces opérations sont effectuées par l’unité arithmétique et
logique (UAL).
A. SAVARY
IUT Blois GTR1, 2004/05
19
Opérations arithmétiques et logiques exemples
A=
NOT A =
11101011
00010100
A=
SL A =
11101011
11010110
A=
SR A =
11101011
11110101
A. SAVARY
A=
B=
A AND B =
11101011
10101100
10101000
A=
B=
A OR B =
11101011
10101100
11101111
A=
B=
A ADD B =
11101011
10101100
10010111
A=
B=
A SUB B =
11101011
10101100
00111111
IUT Blois GTR1, 2004/05
20
Circuit qui réalise A ADD B (1/2)
Additionneur complet 1 bit
Mise en œuvre
Interface
bi a i
bi ai
+
RetSorti
RetSorti
RetEntri
RetEntri
Sommei
ai bi RetEntri
0 0
0
0 0
1
0 1
0
Sommei
0 1
1
1 0
0
• Portes XOR, AND et OR sont
1 0
1
utilisées comme éléments de base
1 1
0
1 12004/05 1
A. SAVARY
IUT Blois GTR1,
Sommei
0
1
1
0
1
0
0
1
RetSorti
0
0
0
1
0
1
1
1 21
Circuits arithmétiques et logiques
Unité logique ET/OU/NON
Mise en
Décaleur 16 Interface
bits
Miseœuvre
en
Interface
Additionneur 16
bits
œuvre
Mise en œuvre
b15 a15
RS15
RE15...RS1
b1 a1
Interface
b0 a0
RE1=RS0
16
A
16
RE0
B
RS un nombreRE
• Le décaleur prend en entrée
sur 16 bit et un
bit de contrôle qui l’informe si le décalage doit se faire
• Le décaleur
en entrée un nombre sur 16 bit et un
s15
s1 • Le décaleur
s0 prend
à
gauche
ou
à
droite.
se
sert
des
16
• Le décaleur
bit de contrôle qui l’informe si le décalage doit se faire à
portes
S décalé d’un bit
•sont
Il produit
en sortie le même nombre
se sert
desOU1...bit
• 16 additionneurs
montées
gauche
ou à droite.
• L’additionneur 16 bits prend en
dans le bon sens.
portes OU
en série
• Il produit en sortie le
mêmeRE=0,
nombre
décalé
d’un bit16dans
entrée
et deux
nombres
...
• Chaque additionneurleprend
en
bon sens.
bits chacun. Il produit leur somme
entrée les 2 bits correspondants des
sur 16 bit ainsi qu’une éventuelle
opérandes et la retenue sortante de
retenue du dernnier bit.
A. SAVARY
IUT Blois GTR1, 2004/05
22
l’additionneur
précédent
+
Construction d’une UAL 16 bits
UAL 16 bits
Contrôle
Mise en œuvre
B A
16
Interface
16
16
4
4
±
SHL/
SHR
ET/
OU/
NON
16+4 16+4
2
1
MUX
16
B
UAL
Contrôle UAL
16+4
Résultat
16+4
0
A
• La sortie contie le résultats de
l’opération déterminée par les bits
Contrôle UAL.
16+4
Résultat
• 4 bits supplémentaires pour chaque sortie
correspondent à des drapeaux cf. TD)
A. SAVARY
IUT Blois GTR1, 2004/05
23
Bus
A. SAVARY
IUT Blois GTR1, 2004/05
24
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
25
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
26
Contrôle d’accès à un bus de données (2/3)
Choix entre deux registres 1 bit pour une lecture/écriture
1 QAi
DDAi
1
Voie i d’un
bus de données
Décodeur
0
0 M
U
1 X
1
Voie i d’un
bus de données
1 QBi
DDBi
1
AouB
VersAouB
EcrireAB
• Lecture de Ai : AouB = …
• Lecture de Bi : AouB = …
A. SAVARY
• Ecriture dans Ai :
EcrireAB = …, VersAouB = …
• Ecriture dans Bi :
EcrireAB = …, VersAouB = …
IUT Blois GTR1, 2004/05
27
Contrôle d’accès à un bus de données (3/3)
Choix entre deux registres n bits pour une lecture/écriture
D1
1 QAi
DDAi
1
Décodeur
0
0
D1
1 QBi
DDBi
1
1
0 M
1U
1 X
AouB
VersAouB
EcrireAB
• 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)
A. SAVARY
IUT Blois GTR1, 2004/05
28
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
29
Devoir 1
(histoire de l’informatique)
REPONSES
1.
2.
3.
4.
5.
6.
7.
8.
9.
A. SAVARY
(bb)
(c)
(d)
(e,f,h)
(q)
(i)
(a)
(g)
(k)
10.
11.
12.
13.
14.
15.
16.
17.
(x)
(x,y)
(b)
(m,n,p,q,
,bb, dd, cc)
(r)
(s)
(t)
(ee)
IUT Blois GTR1, 2004/05
18.
19.
20.
21.
22.
23.
24.
25.
(u)
(v)
(j)
(w)
(l)
(z,aa)
(o)
(cc)
30
Téléchargement