• Aucun résultat trouvé

Elle dispose de circuits réalisant des opérations arithmétiques et logiques. Cependant, les opérations ne sont pas activées par l’UAL, mais par l’unité de contrôle.

N/A
N/A
Protected

Academic year: 2022

Partager "Elle dispose de circuits réalisant des opérations arithmétiques et logiques. Cependant, les opérations ne sont pas activées par l’UAL, mais par l’unité de contrôle."

Copied!
41
0
0

Texte intégral

(1)

UNITES DE CONTRÔLE – A. DIPANDA

(2)

„

Un système complexe est un système ayant un nombre d’états relativement important.

„

Un système complexe possède deux parties synchronisées sur une même horloge:

- une unité de traitement - une unité de contrôle

„

L’analyse d’un système complexe se décompose toujours en deux parties:

l'analyse et la réalisation.

(3)

Elle dispose de circuits réalisant des opérations arithmétiques et logiques. Cependant, les opérations ne sont pas activées par l’UAL, mais par l’unité de contrôle.

„

En entrée de l’UAL, on a des commandes permettant d’activer les opérations, venant de l’unité de contrôle

„

En sortie, on a les résultats des opérations et

les conditions qui sont en fait les entrées de

l’unité de contrôle.

(4)

L’unité de traitement est composée de trois parties :

¾ les registres (mémorisation des données)

¾ l’UAL : (ensemble des opérateurs arithmétiques et logiques)

¾ les chemins de données ; ce sont des liaisons entre les registres et les opérateurs ; ces liaisons peuvent être des connexions simples ou alors peuvent admettre plusieurs entrées sur la même ligne : on parle alors de BUS.

„

Ces différentes sources seront validées par des

adaptateurs trois états.

(5)

„

L’unité de contrôle réalise le séquencement (prédéfini dans un programme) des opérations.

„

L’unité de contrôle ne fait aucun traitement ; elle envoie des commandes à l’unité de traitement qui va exécuter les traitements.

„

Il est tout à fait possible qu’il existe en plus des

liaisons avec l’extérieur.

(6)

COMMANDES CONDITIONS

UNITE DE TRAITEMENT

UNITE DE CONTRÖLE E1

E2

S1

S2

(7)

1) Ecrire un algorithme (analyse)

„

Il décrit les fonctionnalités du programme.

„

Il utilise :

„

des variables

„

des opérateurs

„

des structures de contrôle (qui réaliseront le

séquencement)

(8)

2) Choisir l’unité de traitement (réalisation)

„

L’unité de traitement devra fournir:

„ les registres servant à la mémorisation des données définies dans l’algorithme.

„ l’unité arithmétique et logique : un opérateur pour chaque opération qui sera effectuée.

„ le chemin des données pour faire transiter les données entre les différents éléments de l'UT.

„

Il est possible de spécialiser l’unité de traitement

pour le rendre plus performant.

(9)

3) Définir les commandes et les conditions

„

Les commandes permettent le déclenchement des opérations ou actions de l’unité de traitement qui vont se dérouler dans un même cycle .

„

Les conditions permettent la gestion des

structures de contrôle (et donc la réalisation du

séquencement).

(10)

4) Etablir le diagramme des états

Il est obtenu à partir de l’algorithme et de l’UT.

„

un état correspond à un ensemble d’instructions réalisées dans le même cycle.

„

Une instruction est un ensemble de

commandes.

(11)

Exemple:

Réalisation d’une affectation du type:

R3 : = R1 + R2

Les différentes commandes à effectuer sont:

1. chargement du registre R1

2. chargement du registre R2

3. opération “+”

4. chargement du registre R3 (avec le résultat)

(12)

Il doit fournir:

3 registres (R1, R2, R3 pour le stockage des valeurs)

Un additionneur

les chemins des données allant:

1) vers R1 et R2

2) de R1 et R2 vers l’additionneur 3) de l’additionneur vers R3

R1 R2

R3

Arrivée des données Arrivée des données

Arrivée des données ADD

(13)

Différents cas:

1. Les lignes d'arrivée de données vers R1, R2 et R3 sont distinctes:

Les chargements de tous les registres peuvent être effectués dans le même top d'horloge ⇒ 1 état

2. Les lignes d'arrivée des données ne sont pas distinctes:

1. Une seule ligne pour les 3 registres:

„ Les chargements sont effectués séquentiellement en 3 tops d'horloge: (R1, R2 et R3) ou (R2, R1 et R3) ⇒ 3 états

2. Une seule ligne pour R1 et R2 et une autre ligne pour R3

„ Les chargements sont effectués en 2 tops ⇒ 2 états:

„ Top1: chargement de R1 (ou R2)

„ Top2: chargement de R2 (ou R1) et de R3

Remarque:

On suppose que les temps de latence de l'addition et de pré-positionnement des bascules (registres) sont nuls.

(14)

R1 R2

R3

Arrivée des données

Arrivée des données ADD

CHR1 CHR2

CHR3

(15)

Exemple complet:

Réalisation d’une machine qui calcule et affiche la somme de n nombres saisis par un utilisateur

Début Faire

Lire(n) // n est le nombre de valeurs à lire

S:=0 // permet de gagner un top

Jusqu’à n>0 Faire

Lire(v) S:=S+v n:=n-1 Jusqu’à n=0 Ecrire(S) Fin

1. Algorithme

(16)

1b. Algorithme

Faire

Ack:=1

Jusqu’à REQ=0 Faire

Ack:=0 ; RY:=E //RY contient la valeur saisie

Jusqu’à REQ=1

RS:=RS+RY //RS contient la somme

RX:=RX-RU Jusqu’à RX<0

Faire

Ack:=1 ; S:=RS //affichage du résultat

Jusqu’à REQ=0 Fin

2

3 4 5

6 Début

Faire Faire

Ack:=0 ; RX:=E //RX contient n

RS:=0 ; RU:=1 // initialisations

Jusqu’à REQ=1 // validation de la saisie de n

RX←RX - RU Jusqu’à RX≥0

// RU est utilisé pour la comparaison (n>0)

// on fait une soustraction avec 1 et on regarde si on a un // débordement. L’autre solution serait d’utiliser un

// comparateur qui permettrait de comparer n à 0

0 1

(17)

„ Les registres : RX, RS, RU, RY

„ Les opérations :

„ + (addition)

„ - (soustraction)

„ = (comparaison) Remarques:

„ L’addition et la soustraction se feront par l’intermédiaire d’un additonneur/soustracteur.

„ La comparaison se fait à l’aide de l’additionneur/soustracteur par le biais du débordement

(18)

3. Chemin des données :

„ de l’entrée vers les registres

„ RX

„ RY

„ des registres vers l’UAL

„ RS

„ RY

„ RU

„ RX

„ de l’UAL vers les registres

„ RS

„ RX

(19)

„

Schéma du circuit

ASC BUSC

RS RX RY RU

ADD/SOUS

RS0 CHRS CHRX CHRY RU1

RSA RXA RYB RUB

EC

BUSA BUSB

A S 0 1

(20)

Les commandes :

ACK0 : Ack :=0 ACK1 : Ack :=1

EC : envoi de E sur le bus C

ASC : envoi du résultat sur le bus C

CHRi : chargement des différents registres RU1 : mise à 1 de RU

RS0 : mise à 0 de RS

RSA : envoi du contenu de RS vers le bus A RXA : envoi du contenu de RX vers le bus A RYB : envoi du contenu de RY vers le bus B RUB :envoi du contenu de RU vers le bus B A : active l’addition

S : active la soustraction

(21)

Les conditions

REQ=0 ou1: à gérer par l’utilisateur DEB : débordement

EQZ : résultat égal à 0

(22)

„

Diagramme des états

2 3 4 5 6

0 1 DEB EQZ+

REQ

REQ

REQ

REQ REQ DEB

REQ

REQ REQ

DEB

DEB

(23)

Remarques :

„ Lorsque l’on fait l’affectation RU:=1, on utilise un registre pour mémoriser une constante.

„ Les commandes “REQ” (gérée par l'utilisateur) et

“ACK” (gérée par le système) sont utilisées pour l’entrée et la sortie des valeurs (hand-shake).

„ L’acquittement final équivaut à la sortie de la somme finale.

(24)

1b. Algorithme

Répéter Ack:=1

Jusqu’à REQ=0 Répéter

Ack:=0 ; RY:=E //RY contient la valeur saisie

Jusqu’à REQ=1

RS:=RS+RY //RS contient la somme

RX:=RX-RU Jusqu’à RX<0

Répéter

Ack:=1 ; S:=RS //affichage du résultat

Jusqu’à REQ=0 Fin

2

3 4 5

6 Début

Répéter Répéter

Ack:=0 ; RX:=E //RX contient n

RS:=0 ; RU:=1 // initialisations

Jusqu’à REQ=1 // validation de la saisie de n

RX←RX - RU Jusqu’à RX≥0

// RU est utilisé pour la comparaison (n>0)

// on fait une soustraction avec 1 et on regarde si on a un // débordement. L’autre solution serait d’utiliser un

// comparateur qui permettrait de comparer n à 0

0 1

(25)

„

Organigramme

ACK←0 ; RX←E ; RS←0 ; RU←1

RX←RX-RU

ACK←1

ACK←0 ; RY←E

RS←RS+RY RX←RX-RU

ACK←1 ; S←RS

0

5 4 3 2

1

6

REQ=1

RX≥0

REQ=0

REQ=0 REQ=1

RX<0 oui

non

oui non

non

non

non

non oui

oui

oui

(26)

Tableau des commandes par état

Etat 0 Etat 1 Etat 2 Etat 3 Etat 4 Etat 5 Etat 6

ACK0 EC CHRX

RS0 RU1

RXA RUB

S ASC CHRX

ACK1 ACK0

EC CHRY

RSA RYB A ASC CHRS

RXA RUB

S ASC CHRX

ACK1

(27)

„ les états sont numérotés de 0 jusqu’à n et on passe souvent d’un état au suivant par une incrémentation

compteur ordinal

„ La fonction de sortie : génération de commandes envoyées à l’UAL ; la fonction de sortie est calculée en fonction du compteur ordinal.

„ La fonction de transition : permet de changer d’état et donc effectue le séquencement ; ce séquencement

dépend du compteur ordinal et des conditions en entrée de l’unité de contrôle.

(28)

Fonction de sortie

Fonction de transfert (séquencement)

Commandes vers l’UAL

Conditions venant de l’UAL Compteur ordinal

„

(29)

1. Unités de contrôle à bascules:

On peut utiliser toutes les techniques de réalisation de systèmes séquentiels.

Exemple: La machine à jetons

A chaque état, on attribue une bascule ; on a 7 états donc on utilisera 7 bascules.

Q0 Q1 Q5 Q6

DEB

INIT

REQ

(30)

2. Unité de contrôle à compteur chargeable

„ En général, on a un comportement de compteur (on passe logiquement de 1 vers 2, puis de 2 vers 3 etc.) mais, il arrive que cette règle de compteur ne soit pas respectée, on dit qu’il y a des sauts

(Exemple: transition de 0 vers 0, de 5 vers 2, etc..).

„ On a deux entrées:

„ INC : qui permet d’incrémenter l’état de 1

„ CH : qui permet le chargement d’un état (lors d’un saut).

(31)

„

Diagramme des états

2 3 4 5 6

0 1 DEB EQZ+

REQ

REQ

REQ

REQ REQ DEB

REQ

REQ REQ

DEB

DEB

(32)

2a.Table des cas

REQ DEB

REQ REQ

DEB

ETAT Condition INC CH Valeur

chargée

0 0 1 1 2 2 3 3 4 5 5 6 6

REQ DEB REQ

REQ

DEB REQ

0 1 0 1 0 1 0 1 1 0 1 0 0

1 0 1 0 1 0 1 0 0 1 0 1 1

0 0 2 3

2 0 6 REQ

(33)

2b. Shéma

A compléter (mettre toutes

les commandes en sortie) REQ

DEB

REQ DEB

0 1 2 3 4 5 6 7

0 2

ChInc

D CPT

REQ REQ

DEB DEB ACK0

CHRX ACK1

REQ

(34)

2c. Commentaires

„ Le décodeur active l’état sur lequel on arrive.

„ En fonction de la condition on charge une valeur ou bien on incrémente l’état.

„ Lorsqu’on est à l’état 0 et qu’on charge l’état 0, c’est comme si on faisait rien ; donc, on peut supprimer toute les lignes de la table des cas correspondant à cette situation, le dessin en est fortement simplifié.

„ Pour les commandes en sortie, on se sert également du diagramme des états: pour une commande donnée, on fait un “ou” avec toutes les lignes des états dans lesquels la commande est activée.

(35)

3. Unité de contrôle microprogrammée

„ On travaille avec une mémoire qui va contenir le microprogramme ;

„ Le séquencement et la génération seront assurés par la mémoire adressée par le compteur ordinal.

„ La réalisation du séquenceur permet soit d’incrémenter soit de charger le compteur ordinal.

(36)

„ Un séquenceur simple permet de faire des sauts conditionnels ;

„ L’adresse donnée par le séquenceur se trouve dans le champ de contrôle du séquenceur, composé de 2 parties :

-le code du saut

-l’adresse du saut (assimilable aux étiquettes en assembleur)

„ Le code du saut indique soit : - un saut conditionnel

- un saut inconditionnel (passage sans condition comme de 4 en 5 dans l’exemple)

- un passage en séquence (incrémentation)

(37)

Dans l’exemple de la somme, nous avons:

„ 4 conditions, donc 4 codes de saut conditionnels;

„ le passage en séquence;

„ le code du saut inconditionnel

⇒ on a 6 codes différents,donc on utilisera 3 bits pour les coder.

(38)

„

Table des sauts

Code saut Séquencement

000 001 010 011 110 111

saut si REQ saut si REQ saut si DEB saut si DEB passage en séquence

saut inconditionnel

(39)

„

schéma

CH

INC

D 0

1 2 3 4 5 6

7 Code-saut Adresse

DEB REQ

REQ DEB

0

1 commandes

cpt

MICR OPROG

RAMME

. . . .

. . . .

(40)

Commentaires:

„ En fonction du code-saut, le multiplexeur permet d’incrémenter ou de charger une nouvelle adresse.

„ Le nombre de bits d’adresse dépend du nombre de lignes du microprogramme. Dans l’exemple traité on a 8 lignes donc on l’adresse est codée sur 3 bits.

„ Le décodeur permet de choisir la case mémoire à activer; elle contient le code saut, la nouvelle adresse et les commandes à exécuter (toutes les commandes sont représentées sur chaque ligne (case mémoire) et une commande est exécutée si le bit correspondant est à 1.

(41)

„

Microprogramme

@ commandes A

C K 0

A C K 1

EC C

H R X

C H R S

R S 0

R U 1

R X A

R S A

R U B

R Y B

A S AS

C C H R Y

Code

saut @

0 1 2 3 4 5 6 7

ACK0 EC CHRX RS0 RU1 SAUT SI REQ 0 RXA RUB S ASC CHRX SAUT SI DEB 0 ACK1 SAUT SI REQ 2 ACK0 EC CHRY SAUT SI REQ 3 RSA RYB A ASC CHRS

RXA RUB S ASC CHRX SAUT SI DEB 2 ACK1 SAUT SI REQ 6 ACK1 SAUT SI REQ 0

1 0 0 1 0 0 0 0

0 0 1 0 0 0 1 1

1 0 0 1 0 0 0 0

1 1 0 0 0 1 0 0

0 0 0 0 1 0 0 0

1 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0

0 1 0 0 0 1 0 0

0 0 0 0 1 0 0 0

0 1 0 0 0 1 0 0

0 0 0 0 1 0 0 0

0 0 0 0 1 0 0 0

0 1 0 0 0 1 0 0

0 1 0 0 1 1 0 0

0 0 0 1 0 0 0 0

001 010 000 001 110 011 000 001

000 000 010 011 101 010 110 000

Références

Documents relatifs

La surface d’un quadrilatère est maximum quand celui-ci est inscriptible dans un cercle.. Cette propriété résulte de la formule de Bretscheider qui donne l’aire A

S’il est facile d’imaginer la configuration de l’énoncé, sa construction effec- tive demande

Le report à nouveau créditeur représente la part du bénéfice N dont l’affectation est différée

• Plusieurs registres ne peuvent être utilisés pour des opérations arithmétiques et seuls AX,BX,CX et DX peuvent être utilisés directement pour les opérations avec des

O RGANE : ensemble de cellules voire de tissus avec une ou plusieurs structures et fonctions au sein d’un organisme.. T ISSU : ensemble de cellules qui présentent

Cette stratégie permet de conclure rapidement dans le cas où un des deux points au moins appartient à la droite d.. ▪On cherche s’il existe un réel t

L’auteur précise les liens étroits qui existent entre l’analyse canonique telle qu’elle est présentée dans les traités classiques d’analyse statistique

Il est indispensable de rendre les dénominateurs positifs avant de réduire au même dénominateur. On en profite pour simplifier au maximum l'écriture des signes.. B) Produit