Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobzaunivbrest
Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest. fr 02 98 01 69 73 10/23/2021 Jalil Boukhobza 1
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 10/23/2021 Jalil Boukhobza 2
Définition n 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: ¡ ¡ ¡ n 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. ). 10/23/2021 Jalil Boukhobza 3
Schéma global Unité de contrôle Commandes horloge Conditions Sorties Entrées Unité de traitement 10/23/2021 Jalil Boukhobza 4
Exemple de signaux à gérer par l’unité de contrôle Unité de traitement ch. R 1 Unité de contrôle R 1 ->Bus R 1 ch. R 2 ch. R 1 ch. R 2 ->Bus ch. Acc R 2 Opération R 3 ->Bus ch. Acc R 3 ->Bus R 2 ->Bus R 1 ->Bus Acc Opération UAL Indicateurs(overflow, zéro, etc. ) 10/23/2021 Jalil Boukhobza 5
De l’influence de l’unité de traitement sur l’exécution d’une instruction • Le séquenceur décide de quand activer les différentes unités de calculs. Entrée RX Ch. RX mux 1 R ACC Ch. Racc RY UAL 10/23/2021 Ch. RY Exemple: comment utiliser le circuit séquentiel précèdent pour réaliser l'opération A + B arrivant sur l'entrée ? opération Jalil Boukhobza 6
Utilisation d’un automate pour séquencer les opérations Séquence des opérations 1. 2. 3. 4. 10/23/2021 charger le registre RX (utilisation du signal ch. Rx write enable) charger le registre RY (signal ch. Ry) laisser passer le contenu de RX dans l'UAL puis charger Racc (signaux de contrôle a activer: mux 1, op = transfert, ch. Racc) réaliser l'addition entre le contenu de RY et Racc puis charger le résultat dans Racc (signaux de contrôle a activer : mux 1, op = +, ch. Racc) Jalil Boukhobza 7
Entrée RX 1 0 R ACC 1 RY UAL 10/23/2021 Jalil Boukhobza 0 Opération=transfert 8
Entrée 0 RX 1 R ACC 0 RY UAL 10/23/2021 Jalil Boukhobza 1 Opération=+ 9
Entrée 0 RX R ACC 1 RY 0 UAL 10/23/2021 Jalil Boukhobza 10
Un autre exemple: la multiplication séquentielle n n n Multiplicande: x 3 x 2 x 1 x 0 Multiplicateur: y 3 y 2 y 1 y 0 Algorithme: ¡ ¡ Il faut multiplier le multiplicande par y 0 puis, décaler le multiplicateur à droite pour multiplier par y 3 y 2 y 1 Et décaler le multiplicande à gauche pour faire la somme par la suite avec le produit. reboucler 10/23/2021 Jalil Boukhobza 11
Multiplicande 64 bits Multiplicateur 32 bits Décalage gauche UAL opération Décalage droite Contrôle écrire Produit 64 bits 10/23/2021 Jalil Boukhobza 12
Algorithme pour le contrôle de la multiplication séquentielle Début Multiplicateur 0=1 Test du bit 0 du Multiplicateur 0=0 Ajouter multiplicande au produit et placer le résultat dans le registre Produit Décaler le registre multiplicande a gauche de 1 bit Décaler le registre multiplicateur a droite de 1 bit 32ème itération? Nombre itérations <32 Nombre itérations=32 Fin 10/23/2021 Jalil Boukhobza 13
Modèle pour l'unité de contrôle n 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): ¡ ¡ ¡ 10/23/2021 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 Jalil Boukhobza 14
Machine de Moore n Dans la machine de Moore, les sorties ne dépendent que de l'état interne. sorties ft Registre d’état fs Entrées Sorties = fs(Yétat_courant) Yétat_suivant = ft(Yétat courant, Entrées) 10/23/2021 Jalil Boukhobza 15
Graphe de transitions (machine de Moore) S n Etat interne n Transition n Changement d’état interne 10/23/2021 A f(E) S A Jalil Boukhobza f(E) S B 16
Utilisation d'un automate à états finis pour la spécification de l‘unité de contrôle n selon Moore : Etat interne S S=0 E 1 E 2 C 1 C 2 C 3 E 5 A S=0 n C 4 Transition E 4 f(E) S=1 n n n Nœud: état interne du circuit: E 1, E 2, E 3, E 4, E 5 Arc: donne les conditions de transitions entre les états en fonction des entrées: C 1, C 2, C 3, C 4 État es variables de sortie est donnée par chaque état du graphe: S 10/23/2021 n Jalil Boukhobza Changement d’état interne S A f(E) S B 17
Hypothèses pour la conception de machine synchrone n pour les circuits synchrones, les activations d'horloge sont sous-entendues n les automates sont déterministes n l'état initial est généralement atteignable par une commande de reset asynchrone 10/23/2021 Jalil Boukhobza 18
Exemple de spécification sous forme d’automates Compteur modulo 4 Les états du circuit correspondent aux valeurs possibles des sorties Q 1 Q 2 Qsortie 1 Qsortie 2 0 0 0 1 0 1 1 1 1 0 0 10/23/2021 Jalil Boukhobza 19
Compteur-décompteur modulo 4 dec inc CPT= 0 0 CPT 0 1 (CPT+1) mod 4 1 0 (CPT-1) mod 4 1 1 indéterminé 00 00 01 01 0 10 1 10 01 2 01 10/23/2021 00 00 10 3 10 Jalil Boukhobza 20
Exemples S=0 n Bascule D D S=1 A D D 00 A n Compteur 2 bits 01 1 B 1 1 D 1 C 11 00 n Compteur 2 bits avec remise à 0 synchrone 10/23/2021 D B r A 10 r 01 B r 1 r r D Jalil Boukhobza 11 r C 10 21
Autre exemple Soit l’automate suivant E=0 S=0 E=1 A E=1 B E=0 S=1 E=1 10/23/2021 S=0 D C E=1 Jalil Boukhobza S=0 E=0 22
Résultat sous forme de chronogramme 1 horloge 0 E S A 10/23/2021 B C Jalil Boukhobza D A 23
Synthèse d’un automate à états finis: génération du circuit séquentiel correspondant 1. 2. Définir le graphe d’états Table des états: changement des états en fonction des entrées État courant E 10/23/2021 A B B C C D D A Jalil Boukhobza 24
3. Codage des états du graphe Pour un minimum de variables internes, on utilise un codage binaire N variables pour 2 N états 10/23/2021 État Y 0 Y 1 A 0 0 B 0 1 C 1 1 D 1 0 Jalil Boukhobza 25
E Y 0 Y 1 4. Table des transitions: 0 00 A 0 01 B 11 c Y 0 Y 1 E 0 11 c 00 A 01 B 11 C 10 D 00 A 0 1 1 10 D 00 A 01 B 11 c 10 D 00 A 01 B 10 D Équation des variables internes: il faut trouver les valeurs des états actuels en fonction des états précédent 10/23/2021 Jalil Boukhobza 26
5. Fonctions de sorties S=1 à l’état D (Y 0 Y 1=10) S=0 pour les états A (Y 0 Y 1=00), B (Y 0 Y 1=01) et C (Y 0 Y 1=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/23/2021 Jalil Boukhobza 27
Bascule D 10/23/2021 28 Jalil Boukhobza Fonction de transition Registre d’état Fonction de sortie
Unité de contrôle câblée n L’unité de contrôle est vue comme un automate à jetons (une bascule par état). n 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. 10/23/2021 Jalil Boukhobza 29
De l’influence du codage des états n Autre choix de codage: ¡ ¡ n A=00, B=01, C=10, D=11 A=0001, B=0010, C=0100, D=1000 (machine à jetons) La table de transition devient: Y 0 Y 1 10/23/2021 E 00 A 01 B 10 C 10 c 11 D 10 C 11 D 00 A Jalil Boukhobza 30
n D’où les équations: et donc des implémentations différentes 10/23/2021 Jalil Boukhobza 31
Dessinez le circuit de l’automate précédent avec un codage à jetons. 10/23/2021 Jalil Boukhobza 32
- Slides: 32