32
22/06/22 Jalil Boukhobza 1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 [email protected] 02 98 01 69 73

27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 [email protected] 02 98 01 69 73

Embed Size (px)

Citation preview

Page 1: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

11/04/23 Jalil Boukhobza 1

Cours 3 Microprocesseurs

Jalil BoukhobzaLC [email protected] 98 01 69 73

Page 2: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 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

Page 3: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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.).

Page 4: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

11/04/23 Jalil Boukhobza 4

Schéma global

Unité de contrôle

Commandes

Conditions

Unité de traitement

horloge

Entrées Sorties

Page 5: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 6: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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 ?

Page 7: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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)

Page 8: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

11/04/23 Jalil Boukhobza 8

R X

R Y

UAL

R ACC

Opération=transfert

1

1

0

Entrée

0

Page 9: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

11/04/23 Jalil Boukhobza 9

R X

R Y

UAL

R ACC

Opération=+

1

1

Entrée

0

0

Page 10: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

11/04/23 Jalil Boukhobza 10

R X

R Y

UAL

R ACC1

Entrée

0

0

Page 11: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 12: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 13: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 14: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 15: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 16: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 17: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 18: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 19: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 20: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 21: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 22: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 23: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

11/04/23 Jalil Boukhobza 23

Résultat sous forme de chronogramme

horloge1

0

A B C D A

E

S

Page 24: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 25: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 26: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 27: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 28: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

11/04/23 Jalil Boukhobza 28

Bascule D

Bascule D

Fonction de transition

Registre d’état Fonction de sortie

Page 29: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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.

Page 30: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

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

Page 31: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

11/04/23 Jalil Boukhobza 31

D’où les équations:

et donc des implémentations différentes

EY

YYEYEY

1

1000 ).(.

Page 32: 27/01/2014Jalil Boukhobza1 Cours 3 Microprocesseurs Jalil Boukhobza LC 206 boukhobza@univ-brest.fr 02 98 01 69 73

11/04/23 Jalil Boukhobza 32

Dessinez le circuit de l’automate précédent avec un codage à jetons.