View
110
Download
4
Category
Preview:
Citation preview
11/04/23 Jalil Boukhobza 1
Cours 3 Microprocesseurs
Jalil BoukhobzaLC 206boukhobza@univ-brest.fr02 98 01 69 73
11/04/23 Jalil Boukhobza 2
L’unité de contrôle
1. Cadencement des calculs d’une unité de traitement
2. Modélisation de l’unité de contrôle, spécification sous forme d’automate
3. Réalisation câblée et microprogrammée de l’unité de contrôle
11/04/23 Jalil Boukhobza 3
Définition
L’unité de contrôle est un système séquentiel. Les entrées sont des conditions, signaux issus de
l’unité de traitement. Les sorties sont des signaux de commandes
envoyés à l’unité de traitement, par exemple: Chargement d’un registre (write enable ou autorisation de
chargement) Commande d’opérateur (ex pour l’UAL) Contrôle de chemin de données (bus, multiplexeurs, trois
états) L’unité de contrôle peut échanger des signaux avec
l’extérieur (initialisation, ordre particulier, etc.).
11/04/23 Jalil Boukhobza 4
Schéma global
Unité de contrôle
Commandes
Conditions
Unité de traitement
horloge
Entrées Sorties
11/04/23 Jalil Boukhobza 5
Exemple de signaux à gérer par l’unité de contrôle
R1->Bus
R2->Bus
R3->Bus
R1
R2
Acc
UALOpération
chAcc
chR2
chR1
Indicateurs(overflow, zéro, etc.)
Unité de traitementUnité de contrôle
chR1
chR2
chAcc
Opération
R3->Bus
R2->Bus
R1->Bus
11/04/23 Jalil Boukhobza 6
De l’influence de l’unité de traitement sur l’exécution d’une instruction
R X
R Y
UAL
R ACC
opération
ChRacc
ChRX
ChRY
mux1
Entrée • Le séquenceur décide de quand activer les différentes unités de calculs.
Exemple: comment utiliser le circuit séquentiel précèdent pour réaliser l'opération A + B arrivant sur l'entrée ?
11/04/23 Jalil Boukhobza 7
Utilisation d’un automate pour séquencer les opérations
Séquence des opérations
1. charger le registre RX (utilisation du signal chRx write enable)
2. charger le registre RY (signal chRy)3. laisser passer le contenu de RX dans l'UAL puis charger
Racc (signaux de contrôle a activer: mux1, op = transfert, chRacc)
4. réaliser l'addition entre le contenu de RY et Racc puis charger le résultat dans Racc (signaux de contrôle a activer : mux1, op = +, chRacc)
11/04/23 Jalil Boukhobza 8
R X
R Y
UAL
R ACC
Opération=transfert
1
1
0
Entrée
0
11/04/23 Jalil Boukhobza 9
R X
R Y
UAL
R ACC
Opération=+
1
1
Entrée
0
0
11/04/23 Jalil Boukhobza 10
R X
R Y
UAL
R ACC1
Entrée
0
0
11/04/23 Jalil Boukhobza 11
Un autre exemple: la multiplication séquentielle
Multiplicande: x3x2x1x0
Multiplicateur: y3y2y1y0
Algorithme:
Il faut multiplier le multiplicande par y0 puis, décaler le multiplicateur à droite
pour multiplier par y3y2y1
Et décaler le multiplicande à gauche pour faire la somme par la suite avec le produit.
reboucler
)15(10001111
)3(00000
)2(101111
)1(0000000
)0(10111111
)5(1010
)3(1011
P
P
P
P
11/04/23 Jalil Boukhobza 12
UAL
Produit 64 bits
Multiplicande 64 bits Multiplicateur 32 bits
Contrôleopération
Décalage gauche
Décalage droite
écrire
11/04/23 Jalil Boukhobza 13
Algorithme pour le contrôle de la multiplication séquentielle
Début
Test du bit 0 du Multiplicateur
Ajouter multiplicande au produit et placer le résultat dans le registre Produit
Décaler le registre multiplicateur a droite de 1 bit
Décaler le registre multiplicande a gauche de 1 bit
32ème itération?
Fin
Multiplicateur0=1 Multiplicateur0=0
Nombre itérations <32
Nombre itérations=32
11/04/23 Jalil Boukhobza 14
Modèle pour l'unité de contrôle
L'unité de contrôle est généralement une machine séquentielle de type Moore pouvant être modélisée de la manière suivante (modèle général pour toute machine séquentielle synchrone):
des états internes Y (synchronisés par une seule horloge), une fonction de transition ft qui définit l'état futur, et une fonction de sortie fs qui définit les valeurs des
sorties
11/04/23 Jalil Boukhobza 15
Machine de Moore
Dans la machine de Moore, les sorties ne dépendent que de l'état interne.
ftRegistre
d’état fs
Entrées
Sorties = fs(Yétat_courant)
Yétat_suivant = ft(Yétat courant, Entrées)
sorties
Graphe de transitions (machine de Moore)
Etat interne
Transition
Changement d’état interne
A
A B
f(E)
f(E)
S
S S
11/04/23 16Jalil Boukhobza
11/04/23 Jalil Boukhobza 17
Utilisation d'un automate à états finis pour la spécification de l‘unité de contrôle
selon Moore :
Nœud: état interne du circuit: E1, E2, E3, E4, E5
Arc: donne les conditions de transitions entre les états en fonction des entrées: C1, C2, C3, C4
État es variables de sortie est donnée par chaque état du graphe: S
E1 E3
E2 E4
E5C1
C2C4
C3
S=1
S=0
S=0
Etat interne
Transition
Changement d’état interne
A
f(E)
S
A B
f(E)S S
11/04/23 Jalil Boukhobza 18
Hypothèses pour la conception de machine synchrone
pour les circuits synchrones, les activations d'horloge sont sous-entendues
les automates sont déterministes
l'état initial est généralement atteignable par une commande de reset asynchrone
11/04/23 Jalil Boukhobza 19
Exemple de spécification sous forme d’automates
Compteur modulo 4
Les états du circuit correspondent aux valeurs possibles des sorties
Q1 Q2 Qsortie1 Qsortie2
0 0 0 1
0 1 1 0
1 0 1 1
1 1 0 0
11/04/23 Jalil Boukhobza 20
Compteur-décompteur modulo 4
dec inc CPT=
0 0 CPT
0 1 (CPT+1) mod4
1 0 (CPT-1) mod4
1 1 indéterminé
0 1 2 3
00 00 00 00
01 01 01
01
10 10 10
10
Exemples
Bascule D
Compteur 2 bits
Compteur 2 bits avec remise à 0 synchrone
A B
D
D
S=0 S=1
D D
A B1
00 01
D C
1
1
1
11 10
A B
r00 01
D Cr
1
11 10
r
rr
r
11/04/23 21Jalil Boukhobza
11/04/23 Jalil Boukhobza 22
Autre exemple
Soit l’automate suivant
A B
D C
E=0 E=1E=1
E=1E=1
E=0
E=0
E=0
S=0
S=0
S=1
S=0
11/04/23 Jalil Boukhobza 23
Résultat sous forme de chronogramme
horloge1
0
A B C D A
E
S
11/04/23 Jalil Boukhobza 24
Synthèse d’un automate à états finis: génération du circuit séquentiel correspondant
1. Définir le graphe d’états
2. Table des états: changement des états en fonction des entrées
État courant E
A B A
B B C
C D C
D D A
E
11/04/23 Jalil Boukhobza 25
3. Codage des états du graphe
Pour un minimum de variables internes, on utilise un codage binaire N variables pour 2N états
État Y0 Y1
A 0 0
B 0 1
C 1 1
D 1 0
11/04/23 Jalil Boukhobza 26
4. Table des transitions:
Équation des variables internes: il faut trouver les valeurs des états actuels en fonction des états précédent
Y0 Y1 E
00 A 01 B 00 A
01 B 01 B 11 C
11 C 10 D 11 C
10 D 10 D 00 A
E
10 YetY
EYEYY
EYEYY
..
..
101
100
E Y0 Y1
0 00 A 00 A
0 01 B 11 c
0 11 c11 c
0
1
1
1
1
10 D
00 A
01 B
11 c
10 D
00 A
01 B
01 B
10 D
10 D
10 YY
11/04/23 Jalil Boukhobza 27
5. Fonctions de sorties
S=1 à l’état D (Y0Y1=10)
S=0 pour les états A (Y0Y1=00), B (Y0Y1=01) et C (Y0Y1=11)
6. Pour une implémentation avec les bascules D, la valeur future de la variable interne est alors injectée en entrée de la bascule D.
10.YYS
DQ
11/04/23 Jalil Boukhobza 28
Bascule D
Bascule D
Fonction de transition
Registre d’état Fonction de sortie
11/04/23 Jalil Boukhobza 29
Unité de contrôle câblée
L’unité de contrôle est vue comme un automate à jetons (une bascule par état).
L’automate est alors implémenté en utilisant des bascules D pour les registres. Le circuit séquentiel obtenu définit alors chaque sortie comme l’union des états où cette sortie vaut 1.
11/04/23 Jalil Boukhobza 30
De l’influence du codage des états
Autre choix de codage: A=00, B=01, C=10, D=11 A=0001, B=0010, C=0100, D=1000 (machine à jetons)
La table de transition devient:
Y0 Y1 E
00 A 01 B 00 A
01 B 01 B 10 C
10 c 11 D 10 C
11 D 11 D 00 A
E
11/04/23 Jalil Boukhobza 31
D’où les équations:
et donc des implémentations différentes
EY
YYEYEY
1
1000 ).(.
11/04/23 Jalil Boukhobza 32
Dessinez le circuit de l’automate précédent avec un codage à jetons.
Recommended