Vous êtes sur la page 1sur 47

Chapitre de rappels Conception des Systèmes à Microprocesseurs

Introduction aux ordinateurs

Un ordinateur est un ensemble d’équipements chargés de traiter des données:

Unités Unité de Unités de


d’entrée traitement sortie

• Ces données sont transmises par le biais d’unités d’entrée à l’unité de traitement

• L’unité de traitement effectue le traitement demandé

• Le résultat du traitement est transmis aux unités de sortie qui permettent alors d’exploiter
ces résultats.

Un ordinateur se présente généralement sous forme d’un boitier contenant l’unité centrale de
traitement et quelques périphériques, d’un clavier, d’une souris, et d’un écran.

• L’unité centrale de l’ordinateur, ou le processeur, ou encore le microprocesseur (si


c’est un circuit intégré), est le circuit qui effectue toutes les opérations de traitement et est
donc le cerveau de l’ordinateur.

• Il travaille en étroite collaboration avec la mémoire centrale (la communication entre


eux est rapide, ce qui fournit plus de puissance à la machine), avec laquelle il forme
l’unité centrale de traitement.

 Les autres éléments de l’ordinateur clavier, souris, écran, imprimante, modem, mémoire
auxilliaire (lecteur de disquettes, disque dur, CD ROM , flash disk…), table traçante, etc.
sont appelés périphériques, ou unités d’entrée sortie (E/S).

1
Chapitre de rappels Conception des Systèmes à Microprocesseurs

La partie de l’ordinateur qui nous intéresse particulièrement dans ce cours est le


processeur.
La technologie de base utilisée pour la réalisation de processeurs numériques, est
l’électronique digitale.

Tout processeur est constitué de circuits digitaux combinatoires (portes logiques,


multiplexeurs, décodeurs, additionneurs,…), et séquentiels (bascules, registres, compteurs,
mémoires, …), qui traitent, transfèrent, et mémorisent des informations, selon des règles
définies en fonction de l’organisation et de la structure de ces différents éléments. Le cours
est donc organisé de manière à rappeler des notions d’électronique digitale vues en licence,
et nécessaires à la conception de systèmes à base de processeurs

Dans ce premier chapitre nous rappellerons les principaux circuits combinatoires


et séquentiels susceptibles d’être utilisés dans un processeur.

2
Chapitre de rappels Conception des Systèmes à Microprocesseurs

Rappel

I Introduction :
La conception du processeur de base nécessite le rappel de notions d’Electronique digitale
vues en licence.
Sachant qu’un processeur est un ensemble de registres contenant des données sur lesquelles
des opérations logiques sont exécutées, selon les ordres reçus par des programmes, et transmis
à un circuit de contrôle qui activent ces opérations, on déduit qu‘un processeur, ou unité
centrale, est constitué d’une unité de contrôle et d’une unité de traitement.

Unité de
traitement

Unité de
contrôle

Unité centrale

Durant ce cours nous comprendrons comment tout cela fonctionne.


Dans ce premier chapitre, nous commencerons par décrire les circuits combinatoires et
séquentiels de base utilisés dans un processeur.
Il est important de noter que leur étude concernera surtout leurs aspects fonctionnels, leurs
rôles, et leurs utilisations ; on supposera généralement que le circuit intégré correspondant
existe sans chercher à le construire (circuit déjà vu et réalisé en licence).

II. Les circuits combinatoires de base :


Un processeur exécute des opérations logiques et des opérations arithmétiques sur les
données qui lui sont fournies.

3
Chapitre de rappels Conception des Systèmes à Microprocesseurs

• La préparation et le transport des données pour le traitement: est le premier


problème à résoudre dans la conception d’un processeur. Le routage des
informations, leur transfert d’une source sélectionnée parmi plusieurs possibles, vers
une destination sélectionnée elle aussi parmi plusieurs possibles, nécessite
l’utilisation de circuits logiques spécifiques tels que les multiplexeurs et les
décodeurs..
• En ce qui concerne les opérations logiques :L’algèbre de Boole spécifie que toutes les
opérations logiques peuvent être exécutées comme une combinaison de ‘AND’ et ‘NOT’,
ou ‘OR’ et ‘NOT’ . Ce sont donc des portes logiques de base qui sont utilisées.
• En ce qui concerne les opérations arithmétiques : elles sont nombreuses, et les plus
connues sont l’addition, la soustraction, la multiplication, la division, l’exponentiation …
Toutes les autres pouvant être représentées comme une somme de produits et de quotients
grâce aux développements limités. La soustraction, la multiplication, et la division,
peuvent être exécutées autour de l’opération d’addition :
La soustraction peut en effet être remplacée par la somme du complément à 2, et la
multiplication et la division par une succession d’additions et de décalages.
Dans un circuit d’exécution d’opérations arithmétiques, l’additionneur apparaît comme
étant un circuit de base.
• Les opérations arithmétiques et logiques sont généralement exécutées dans un circuit, qui
est le cœur de l’unité de traitement dans un processeur, appelé l’unité arithmétique et
logique ou UAL.

1 L’additionneur :
- Le demi-additionneur :
C’est un circuit réalisant une opération arithmétique entre deux bits.
Les deux entrées du circuit représentent les bits x, et y à additionner, et les sorties, le bit
somme S et le bit retenue C.

x s
x y s c s=x⊕ y y
0 0 0 0
0 1 1 0 c = xy
1 0 1 0
1 1 0 1 c

a- Table de vérité b- circuit logique

4
Chapitre de rappels Conception des Systèmes à Microprocesseurs

- L’additionneur complet :

L’additionneur complet réalise l’addition de trois bits, deux bits significatifs, x et y, et la


retenue z d’une addition précédente. Les sorties s et c sont leur somme et leur retenue
respectivement.
s=x⊕ y⊕ z
c = xy + z(x ⊕ y)
x y z s c
00 00 01 0
1 0
0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

a- Table de vérité b- circuit logique

2 Le soustracteur complet :

Ce circuit combinatoire réalise la soustraction de deux bits x et y en considérant la retenue de


la soustraction de deux bits de la position inférieure. L’opération de soustraction, est
cependant souvent remplacée par l’addition du complément à deux.
Les résultats du soustracteur diffèrent de ceux de l’additionneur par la valeur de la retenue (la
somme étant égale à la différence).
s=x ⊕ y⊕z

c = xy + z(x ⊕ y)

x y z s c
0 0 0 0 0
0 0 1 1 1 s
x
0 1 0 1 1 y
0 1 1 0 1
1 0 0 1 0 z
1 0 1 0 0 c
1 1 0 0 0
1 1 1 1 1

a- Table de vérité b- circuit logique


5
Chapitre de rappels Conception des Systèmes à Microprocesseurs

3 Les décodeurs :
D’une manière générale, un décodeur est le circuit d’une fonction digitale qui
traduit l’information binaire d’un code en entrée vers un autre code en sortie.
Notre étude concernera principalement le décodeur nx2n dont une seule des 2n sorties est
activée à la fois, pour chacune des combinaisons des n entrées. Le décodeur 2x4 ci dessous,
montre le principe de fonctionnement du décodeur :

- Le décodeur 2x4
x y
x y S1 S2 S3 S4 o S1
0 0 1 0 0 0 o
DCD 0 1 0 1 0 0
o S2
2x4 1 0 0 0 1 0
1 1 0 0 0 1
b- table de vérité
a- schéma bloc o S3

S4

c- circuit logique
Cette description du décodeur permet de déduire qu’il sera utilisé pour activer une et une
seule, parmi plusieurs destinations, comme nous le verrons plus loin lors de la
construction de bus ou dans de nombreuses autres applications.
- Les décodeurs avec ligne d’activation :

x S1
S2
DCD
y S3
2x4
S4
act
schéma bloc

Si la ligne d’activation est égale à 1, le décodeur fonctionne normalement, il est dit alors en
fonctionnement.
Si la ligne d’activation est égale à zéro, toutes les sorties du décodeur sont nulles. Il est alors
mis hors fonctionnement.

6
Chapitre de rappels Conception des Systèmes à Microprocesseurs

- Application
Construction d’un décodeur 3x8 à partir de deux décodeurs 2x4 avec ligne d’activation.

a b c S1 S2 S3 S4 S5 S6 S7 S8 x S1
0 0 0 1 0 0 0 0 0 0 0 b S2
DCD
0 0 1 0 1 0 0 0 0 0 0 y S3
c 2x4
0 1 0 0 0 1 0 0 0 0 0 S4
0 1 1 0 0 0 1 0 0 0 0 act
1 0 0 0 0 0 0 1 0 0 0 a
1 0 1 0 0 0 0 0 1 0 0
1 1 0 0 0 0 0 0 0 1 0 S5
x
1 1 1 0 0 0 0 0 0 0 1 S6
DCD
S7
y 2x4
Table de vérité S8
act

• Les 8 sorties du décodeur 3x8 sont prises au niveau des sorties des 2 décodeurs 2x4.
• Puisqu’une seule sortie du décodeur 3x8 doit être activée à la fois, à chaque fois qu’un
des 2 décodeurs 2x4 est activé, l’autre doit être désactivé. Les deux entrées d’activation
doivent donc être inversées, et elles correspondent à l’entrée a du décodeur 3x8
• Les zones grises de la table de vérité montrent le fonctionnement d’un décodeur 2x4 sans
ligne d’activation ; pour a=0, c’est le premier décodeur qui est activé, et pour a=1c’est le
deuxième. Les variables b, et c sont donc directement reliées aux entrées x et y des deux
décodeurs 2x4.

4 Les démultiplexeurs :
Un démultiplexeur est un circuit qui a une entrée de données, n entrées de sélection, et 2n
sorties. L’entrée de donnée E est transmise sur la sortie sélectionnée par une combinaison des
n lignes de sélection.
E DMUX 2n sorties

7
Chapitre de rappels Conception des Systèmes à Microprocesseurs

On remarque que le démultiplexeur possède un circuit identique à celui d’un décodeur avec ligne
d’activation, de même dimension. (E est la ligne d’activation, et les entrées de sélection sont les
entrées du décodeur).
La différence réside uniquement dans la fonction des circuits :
• Le décodeur est utilisé pour contrôler d’autres circuits (activer, désactiver, sélectionner une
destination …)
• Le démultiplexeur est utilisé pour transporter une information, une donnée, dont la
valeur 0 ou 1 n’a pas d’influence sur son fonctionnement.

5 Les multiplexeurs :
Un multiplexeur possède 2n entrées de données, n lignes de sélection et une seule sortie. Chaque
combinaison des n lignes de sélection choisit une seule entrée à transmettre en sortie.

- Exemple: Multiplexeur 4x1

S0 S1 S
E1
S 0 0 E1
E2
MUX 0 1 E2
E3
1 0 E3
E4
1 1 E4
sel
b- Table de vérité
n

a- Schéma bloc

S0 S1

o
E1 o
o
E2 S

E3 o

E4
c- circuit logique
8
Chapitre de rappels Conception des Systèmes à Microprocesseurs

Les multiplexeurs sont souvent utilisés pour la sélection de source de données, alors que les
décodeurs le sont pour la sélection de destination. Dans les chapitres suivants, nous
considérerons que ces circuits existent sous forme intégrée, et que nous n’aurons pas à les
construire.
6 Les buffers à 3 états :
Un buffer à trois états possède une entrée, une sortie, et une ligne d’activation.
• Si la ligne d’activation est égale à 1, la sortie prend l’état de l’entrée , 0 ou 1.

• Sinon, le buffer fonctionne en circuit ouvert ( non connecté).

act
act
E S S
E

Buffer à 3 états Interrupteur

Un buffer à 3 états est équivalent à un interrupteur qui peut être soit ouvert, soit fermé.

- Equivalence multiplexeurs <-> buffers à 3 états.


Un multiplexeur à n entrées peut être remplacé par n buffers à 3 états , et un décodeurs à k
entrées telles que 2k= n

E1
E2 S
E1
E2 S E3
E3 MUX E4
E4

sel
sel 2 DCD
2
2x4

b- Circuit équivalent à base de 4


a- Multiplexeur à 4 entrées
buffers à 3 états

Le décodeur 2x4 assure qu’un seul buffer à 3 états peut être activé à la fois (donc pas de
conflits à la sortie des buffers).
Pour chacune des combinaisons des deux lignes de sélection, un seul buffer est activé, son
entrée est transmise vers la sortie S, et les autres buffers fonctionnent en circuit ouvert.
9
Chapitre de rappels Conception des Systèmes à Microprocesseurs

III. Les circuits séquentiels de base


Dans un circuit séquentiel la valeur en sortie et l’état présent du circuit, dépendent, non
seulement des valeurs présentes en entrées, mais également de l’état précédent, ou passé du
circuit. Ceci nécessite le stockage d’informations sur les états passés, et donc l’utilisation de
circuits de mémoire, dont les éléments de base sont les bascules.

1 Les bascules :
- La bascule RS

S R Q+ QQ+ S R
R Q 00 Q 00 0X
H 01 0 01 10
S Q 10 1 10 01
1 1 -- 11 X0
a- Schéma bloc b-table d’état c-table d’excitation

- La bascule JK

QQ+ JK
JK Q+ 00 0X
J Q 00 Q
- H
La bascule D 01 1X
01 0 10 X1
K Q 10 1 11 X0
11 Q

La bascule D
QQ+ D
+
D Q D Q 00 0
H 0 0 01 1
Q 10 0
1 1
11 1
a- Schéma bloc b- Table d’état c- Table d’excitation

- La bascule T

QQ+ T
T T Q+
00 0
0 Q 01 1
1 Q 10 1
11 0
a- Schéma bloc
b- Table d’état c- Table d’excitation

10
Chapitre de rappels Conception des Systèmes à Microprocesseurs

Les bascules sont utilisées à la base de tous les circuits séquentiels classiques, constitués de
bascules (dont le nombre, k, dépend du nombre d’états, < à 2k , du système), et d’un circuit
combinatoire qui contrôle les entrées des bascules (donc leurs changements d’états), et fournit
les sorties du système.

J Q
Entrées secondaires H
K Q
Entrées primaires Circuit Sorties
combinatoire

J Q
H
K Q

11
Chapitre de rappels Conception des Systèmes à Microprocesseurs

2 Les bascules maître esclave

Une bascule maître esclave est constituée d’une bascule maître, d’une bascule esclave, et d’un
inverseur connectés comme suit:

Y
H S Q S Q

R Q R Q
Y

Schéma bloc de la
bascule maître esclave
Quand l’horloge H est égale à 1: les valeurs en entrée de S et R sont transmises à la bascule
maître.

Quand l’horloge H est égale à 0: la bascule maître est désactivée. La bascule esclave est
activée, et elle copie la valeur Y (l’état de la bascule maître) .

La bascule maître esclave ne change d’état qu’au front descendant de l’horloge. Cette
propriété importante permet les échanges inter registres, et les transferts simultanés, qui
peuvent être effectués en une impulsion d’horloge; sans les bascules maître esclaves, ces
transferts nécessiteraient des registres intermédiaires, et 3 impulsions d’horloge.

3 Les registres:

Un registre est un ensemble de bascules, et de portes logiques. Le nombre de bascules spécifie


le nombre de bits stockés dans le registre. Il possède des entrées de données, série, ou
parallèles, et des entrées de contrôle, qui commandent son fonctionnement.

Les registres possédant la fonction de chargement parallèle sont les plus souvent utilisés dans
les ordinateurs.

Les registres à décalage à gauche ou à droite avec entrée série, sont nécessaires aux opérations
série, et de décalage.

12
Chapitre de rappels Conception des Systèmes à Microprocesseurs

4 Les compteurs binaires:


Les compteurs binaires avec chargement parallèle, remise à zéro, et autres fonctions
existent.
Les compteurs à séquence binaire, et progressifs-régressifs (up and down) sont
indispensables à diverses fonctions de comptage, et de pointage dans une unité centrale.
5 Les mémoires:
Nous considérons ici les éléments de la mémoire centrale constituée d’une partie RAM
(mémoire vive), et d’une mémoire ROM (read only memory ou mémoire morte). Les autres
mémoires, disques, CD ROM, flash disk, bande magnétique, … sont appelées mémoires
auxiliaires et font partie des périphériques.
- Les mémoires RAM:
Dans une RAM (Random Access Memory), l’accès en lecture ou en écriture, aux registres de
stockage qui la constituent, se fait, selon les besoins, de manière séquentielle, ou aléatoire,
contrairement à l’accès aux données stockées sur bandes magnétiques par exemple (qui doit
se faire séquentiellement).

Propriétés d’une mémoire RAM:


Un mot est stocké dans un registre de la mémoire
Un mot de 8 bits est appelé octet (byte); un mot de 16 bits est appelé mot (word).
Un mot est localisé par son adresse (unique)
Un mot de n bits est constitué de n cellules de bases
La totalité des n bits formant un mot, est lue ou écrite à chaque accès à la mémoire.

Ceci nous permet de déterminer les entrées et sorties de la RAM comme suit:

Schéma bloc d’une Ram mxn

La RAM mxn est une mémoire de


m mots de n bits, et possède :
Données n lignes de données en entrée
n Sorties n lignes de données en sortie
Adresses RAM n Un bus de k lignes d’adresses
k mxn tel que 2k= m
Lec Un bus de contrôle constitué
ecrit de 2 lignes de commande de
lecture et d’écriture.

13
Chapitre de rappels Conception des Systèmes à Microprocesseurs

- Les mémoires ROM:


Le contenu d’une mémoire ROM est fixé durant sa fabrication, et ne peut être altéré. On y
accède uniquement pour lire le contenu d’un mot spécifié par une adresse.
Elle peut être livrée sous forme de :
PROM ( programmable ROM) : initialisée à 0 et programmable une seule fois.
EPROM (erasable PROM) : effaçable par UV, et reprogrammable plusieurs fois.
EEPROM (electrically erasable PROM) : effaçable par électricité, et reprogrammable
plusieurs fois.
La fonction de la ROM permet de déduire son schéma bloc comme suit :

La ROM mxn est une mémoire de


m mots de n bits, et possède :
n lignes de données en sortie
Sorties Un bus de k lignes d’adresses
Adresses ROM n tel que 2k=m
k mxn Eventuellement une ligne
d’activation , dont la présence
act
permet de construire des ROM
de plus grande capacité

Schéma bloc d’une ROM mxn

14
Chapitre de rappels Conception des Systèmes à Microprocesseurs

- Application1: construction d’une RAM 8x3 :

Une RAM 8x3 est une RAM de 8 mots de 3 bits chacun.

Chaque bit est stocké dans une cellule de base (CB). En se basant sur le fonctionnement de la
RAM , on peut déduire les propriétés suivantes pour une CB:
Elle possède en entrée :
Une ligne d’activation ou de sélection sel
Une ligne d’entrée de donnée D
Une ligne de commande d’écriture écrit
Une ligne de commande de lecture lect
D Elle possède en sortie :
lect S Une sortie de donnée S
CB
ecrit Si la cellule est sélectionnée en lecture, son
sel contenu apparaît sur sa sortie S
Si la cellule est sélectionnée en écriture, la
donnée présente à l’entrée D, y est
stockée.
Cellule de base : schéma bloc Hypothèse : une CB non sélectionnée en
lecture a une sortie nulle.

Une RAM 8x3 contient 8x3=24 CB puisque chaque mot en contient 3.

D’après les propriétés d’une RAM , un mot est utilisé en entier (tous ses bits) en
lecture ou en écriture. Les CB d’un même mot sont donc sélectionnées en même
temps, en lecture, ou en écriture.

Une RAM 8x3 est de 8 mots donc k lignes d’adresse telles que: 2k=8; donc k=3. A0,
A1, A2

Un mot doit être activé à la fois, et par une adresse unique; on utilise donc un décodeur
3x8 pour activer un seul mot en décodant son adresse.

Chaque mot possède 3 bits , la Ram a donc 3 lignes de données en entrée: D0, D1, D2

Et 3 lignes de données en sortie S0, S1, S2.

Quand un mot est sélectionné en écriture sa cellule CB0 reçoit l’entée D0, CB1 reçoit,
D1, et CB2 reçoit D2

Quand un mot est sélectionné en lecture, chaque Si reçoit un parmis 8 Cbi sélectionné
par un MUX 8x1, contrôlé par les Ai

15
Chapitre de rappels Conception des Systèmes à Microprocesseurs

16
Chapitre de rappels Conception des Systèmes à Microprocesseurs

Chapitre 1 Rappels

- Application2 : Construction d’une ROM 8x4


Soit à construire une ROM 8x5 dont le contenu est donné dans la table ci-dessous :

Adresse Contenu
A0 A1 A2 mot S0 S1 S2 S3 S4
0 0 0 m1 0 0 1 0 0
0 0 1 m2 0 1 0 1 1
0 1 0 m3 1 1 1 1 1
0 1 1 m4 0 0 1 0 0
1 0 0 m5 0 0 0 0 0
1 0 1 m6 1 0 0 1 0
1 1 0 m7 0 1 1 1 1
1 1 1 m8 1 0 0 1 0

Contenu de la ROM 8x5


La ROM est une mémoire en lecture seule dans laquelle on ne peut pas écrire. Une même
adresse (entrée A0A1A2), fournit toujours la même sortie. Le tableau ci dessus devient la table
de vérité d’un circuit combinatoire, exprimant les sorties Si, en fonction des entrées, Ai. La
ROM , à l’inverse d’une RAM peut donc être réalisée à l’aide d’un circuit combinatoire et
non de bascules.
Il est possible d’extraire l’expression logique de chaque Si, en fonction des Ai, puis de
construire les circuits logiques.
Ce procédé est cependant coûteux puisqu’il s’agit de construire une ROM complètement
personnalisée pour chaque concepteur ou utilisateur de ROM.
Un système de fusibles est envisagé et permet la standardisation de la construction des ROM
jusqu’à l’avant dernière étape de la construction micro électronique. La dernière, celle du
dernier masque est personnalisée, et fournit le contenu final de la ROM.
Les adresses Ak sont décodées et fournissent les mj.
Chaque sortie Si est une porte OU, dont les entrées sont tous les mj.
Si pour le mot mj, Si est 1, alors un fusible est fondu à l’entrée mj de la porte OU.
Si mj est activée, sa sortie correspondante Si sera alors égale à 1

17
Chapitre de rappels Conception des Systèmes à Microprocesseurs

x
x S0
x
xx
S1
Contenu x
m1
mot S0 S1 S2 S3 S4 A0 m2
x
m3
m1 0 0 1 0 0 A1 DCD m4
m5
xx S2
m6
m2 0 1 0 1 1 A2 3x8 m7 x
m8
m3 1 1 1 1 1
xx
m4 0 0 1 0 0 S3
m5 0 0 0 0 0 xx
x
m6 1 0 0 1 0
m7 0 1 1 1 1 x x S4
m8 1 0 0 1 0 x

Contenu de la ROM 8x5

Circuit combinatoire de la ROM 8x5

18
Chapitre de rappels Conception des Systèmes à Microprocesseurs

Unité centrale de traitement


Langage de Transfert inter Registres

I. Introduction
L’ordinateur est défini comme un ensemble d’équipements électroniques permettant le
traitement d’informations par l’exécution de programmes; les programmes étant des
ensembles d’instructions.
Une instruction spécifie une opération et les paramètres sur lesquels elle est exécutée. Les
données à traiter pouvant être dans des registres, la mémoire centrale, ou provenir des
périphériques, chaque instruction peut nécessiter plusieurs impulsions d’horloge pour être
réalisée. L’opération exécutée pendant chaque impulsion d’horloge est dite micro opération.
L’organisation interne d’un système digital, qu’il soit à utilisation générale ou spécialisée, est
définie par:

La séquence de micro opérations qu’il réalise, sur les données stockées dans ses différents
registres.
L’unité centrale de traitement, constituée comme indiqué précédemment de l’unité centrale
et de la mémoire centrale, est entièrement définie par les micro opérations initiées à chaque
impulsion d’horloge par les instructions contenues dans les programmes.

Dans ce chapitre, sera introduite et définie, la notion, très importante, du langage de transfert
inter registre (LTR), qui est un langage symbolique de description hard du circuit, support
de l’exécution d’une micro opération. En effet, la description en LTR de toutes les micro
opérations pouvant être exécutées dans une unité centrale, permet de construire celle ci de
façon modulaire, et complète. Auparavant l’unité centrale de traitement, et le principe
d’exécution d’un programme sont présentés. La fin du chapitre montre comment les fonctions
de contrôle et les signaux de synchronisations, qui activent l’exécution des micro
opérations, sont générés.

19
Chapitre de rappels Conception des Systèmes à Microprocesseurs

II. L’unité centrale de traitement (UCT):


1 Fonctions principales de l’UC :

Les fonctions principales de l’unité centrale sont:

La traduction et l’exécution des instructions des programmes

La communication avec les autres unités fonctionnelles de l’ordinateur, la mémoire


centrale, et les organes d’Entrée/Sortie.

Mémoire
centrale
Unité
centrale
Organes
d’E/S

L’unité centrale doit donc disposer :


De registres pour stocker les données à traiter
D’une unité qui exécute les opérations élémentaires de l’ordinateur
D’une circuiterie pour contrôler le fonctionnement de ses différents éléments .

2 Etapes d’exécution d’une instruction :

Le programme à exécuter, constitué d’un ensemble d’instructions, est initialement stocké sur
une unité de mémoire auxiliaire (disque dur, disquette, CD ROM …).

Ce programme est d’abord copié dans la mémoire centrale, où il sera exécuté instruction par
instruction
Mémoire centrale<-Programme

RI <- instruction Une instruction est lue de


la mémoire et stockée
dans le registre
d’instruction; elle est
L’unité de ensuite décodée par
contrôle décode l’unité de contrôle
(RI)

L’unité de contrôle
envoie les ordres à
Exécution de l’instruction par l’unité
l’unité de traitement
de traitement
20
Chapitre de rappels Conception des Systèmes à Microprocesseurs

Chaque instruction est lue de la mémoire centrale vers le registre d’instruction. l’unité de contrôle la
décode, et envoie les fonctions de contrôle (commandes) vers l’unité de traitement qui les exécute.
Ceci est en fait une description simplifiée de l’exécution d’une instruction. Les architectures
de processeurs classiques prévoient dans la réalité, une organisation de l’unité de traitement
plus ou moins standard, qui influera sur le déroulement de l’exécution d’une instruction.
- Eléments de base de l’unité de traitement :

Généralement, mais non exclusivement, l’unité de traitement comporte :


Un registre PC : compteur de programme. Il pointe vers l’instruction suivante à exécuter.
Un registre MAR : registre d’adresse mémoire. Il contrôle le bus d’adresse de la mémoire.
Un registre MDR : registre de données mémoire. Il contrôle le bus de données de la mémoire.
Un registre RI : registre d’instruction. Il sert à stocker l’instruction lue de la mémoire
centrale pour exécution.
L’UAL : l ‘unité arithmétique et logique. Elle sert à exécuter les opérations arithmétiques,
et logiques nécessaires à l’exécution de l’instruction.
Les registres processeurs : Registres généraux R0 à Rn, servent à stocker les données à
traiter ainsi que les résultats de traitement

Unité centrale
PC Unité de traitement

MAR

MDR UAL
Mémoire
RI centrale

R0

Rn

Unité de contrôle
Unité de contrôle

Unité centrale de traitement

L’étude de l’étape de lecture de l’instruction dans le registre d’instructions, nous montre déjà
que l’opération nécessite plusieurs impulsions d’horloge, vu qu’il est impossible de lire
l’instruction si son adresse n’est pas d’abord activée (MAR<-(PC)), et qu’il est impossible de la
21
Chapitre de rappels Conception des Systèmes à Microprocesseurs

stocker dans le registre d’instruction RI, si elle n’a pas été lue de la mémoire dans le
registre de données.

Ceci montre deux aspects importants de l’exécution d’une instruction :

• L’exécution d’une instruction se fait en plusieurs étapes, appelées cycles (cycle de lecture,
cycle de préparation, cycle d’exécutions…)

• Chaque cycle comporte plusieurs impulsions d’horloge ordonnées (les ti), durant
lesquelles des opérations précises doivent être exécutées.

cycle
t0 t1 t2 t3

Initialement l’adresse de l’instruction à exécuter est dans le


PC.
L’instruction doit être lue de la mémoire et stockée dans le RI.
Elle sera ensuite décodée et exécutée. Toute adresse (de
donnée ou d’instruction) doit passer par le MAR, puisqu’il est
le seul registre qui gère le bus d’adresse de la mémoire.
MAR<-(PC) Toute information (donnée ou instruction), provenant de, ou
allant vers la mémoire doit passer par MDR, puisque c’est le
seul registre connecté au bus de données de la mémoire.
La lecture de l’instruction dans RI doit donc respecter les
MDR<-(MAR) étapes suivantes :
• MAR<-(PC) ; pour activer l’adresse de l’instruction.
• MDR<- M(MAR) ; l’instruction est d’abord lue dans le
MDR, puisqu’il est le seul registre connecté au bus de
RI<-( MDR) données de la mémoire
• RI<- (MDR) ; l’instruction est ensuite transférée vers RI
pour être décodée par l’unité de contrôle.

Quand l’instruction est chargée dans le registre d’instruction, l’unité de contrôle la décode, et
transmet les ordres qui en découlent à l’unité de traitement qui exécute.

Ces ordres donnés par l’instruction sont des opérations de type :

• Transfert : parallèle ou série, registre – registre ou mémoire – registr

22
Chapitre de rappels Conception des Systèmes à Microprocesseurs

 Arithmétique
 Logique
 De décalage
 D’entrée/sortie.
Ces opérations, quand elles sont exécutées en une impulsion d’horloge sont appelées micro
opérations.

Dans ce qui suit, nous exposons le langage de transfert inter registre qui est une description
hard du support matériel qui permet d’exécuter les micro opérations spécifiques à chaque
impulsion d’horloge.

III. Langage de transfert inter registre et micro opérations:


1. Définition :

Le LTR est un langage symbolique qui permet de décrire le support matériel d’exécution de
séquences de micro opérations initiées par chaque instruction d’un processeur, en spécifiant :

• Les registres, ou mémoire qui contiennent les données à traiter

• La séquence de micro opérations réalisées sur l’information binaire stockée dans ces
registres.

• Les fonctions de contrôle qui activent les micro opérations nécessaires à l’exécution de
toute instruction

2. Micro opérations de transfert :


2.1 Représentations d’un registre :

1 8
A A

Registre A Montre les bits MSB et LSB

A1 A2 A8 OP ADR

Montre les cellules Montre les parties fonctionnelles


d’un registre

La représentation d’un registre est choisie en fonction de l’usage que l’on fait du schéma bloc,
ou logique, et du degré de détails que l’on doit y fournir position de bit, décalage, parties
fonctionnelles d’un registre…

23
Chapitre de rappels Conception des Systèmes à Microprocesseurs

2.2 Transfert parallèle :


C’est un transfert simultané de tous les bits d’un registre B vers un registre A. Ilest activé par
une fonction de contrôle P.
En LTR on écrit :
P : A ← (B)
Choix des registres :
A : registre avec capacité de chargement parallèle activé si son entrée Load=1
B : Registre permettant l’accès à ses sorties parallèles.

P
Unité de L A
contrôle

Circuit logique :transfert parallèle

2.3 Echange entre deux registres :


P : A ← (B), B ← (A)
L’hypothèse de notre cours étant l’utilisation de registres à bascules maître-esclave, l’échange
entre deux registres peut se faire en une impulsion d’horloge (au lieu de trois avec des
bascules simples), et sans ajout de registre temporaire.
Il en est de même pour les transferts simultanés (voir TD 2, exercice 1).

P
Unité de L A
contrôle

L B

Circuit logique :échange entre deux registres

Choix des registres :


A : Registre avec capacité de chargement parallèle activé si son entrée Load=1
B : Registre avec capacité de chargement parallèle activé si son entrée Load=1
Les deux entrées LOAD des deux registres A, et B sont activées en même temps, et deux
micro opérations simultanées sont séparées par une virgule en LTR

2.4 Transfert série :


• Les registres source B et destination A sont des registres à décalage avec entrée série..
• L’information est transmise un bit à la fois, en décalant les bits du premier registre
(source) vers le deuxième registre (destination).
24
Chapitre de rappels Conception des Systèmes à Microprocesseurs

• L’information de la source est reconduite vers la source pour ne pas être perdue.
• Le même décalage, gauche ou droite, est choisi pour les deux registres.

En LTR on écrit :
S : A ← (B), B ← (B), le signal de contrôle S dure n impulsions d’horloge.
Ou
De façon plus précise :
S : A1 ← Bn, B1 ← Bn, Ai ← Ai-1, Bi ← Bi-1, i = 2 à n, transfert par décalage à
droite, bits numérotés comme indiqué sur le schéma, et s dure n impulsions d’horloge.
Es
S A1 A2 An
dec

Es
B1 B2 Bn
dec

Circuit logique : transfert série

2.5 Transfert par bus:


Un ordinateur possède plusieurs registres, et chacun doit être en relation avec tous les autres.
Pour les différentes opérations de transfert, le nombre élevé de connections devient un grand
inconvénient.

R1 R2 R3

Exemple : transfert entre 3 registres à n bits ; dans le cas de transferts


parallèles , le nombre de lignes est multiplié par n

Pour éviter cet inconvénient, on limite le nombre de transferts à 1 à la fois.


• Chaque bit est relié en entrée, et en sortie à une ligne commune par des interrupteurs (sur
le plan fonctionnel).
• Fonctionnement : tous les interrupteurs sont ouverts, sauf ceux des registres en
communication (interrupteurs de sortie pour la source, et d’entrée pour la destination).

S1 S2 S3
Ligne de bus, une
R1 R2 R3 pour chaque bit
S6 S5 S4

25
Chapitre de rappels Conception des Systèmes à Microprocesseurs

Un système de bus peut être réalisé en utilisant :


• La logique câblée : des multiplexeurs
• Des circuits à collecteurs ouverts (ne sera pas détaillé dans ce cours)
• Des buffers à 3 états

-Application1 : Construire un bus pour la communication parallèle entre 5 registres à 4 bits


chacun, en utilisant des multiplexeurs.
Tous les registres peuvent être source, et tous peuvent être destination.

1. Sélection de la source :
Il y a 5 registres source possibles, donc il faut 3 lignes de sélection S0, S1, S2, telles que :

S0 S1 S2 Source
0 0 0 R1
0 0 1 R2
0 1 0 R3
0 1 1 R4
1 0 0 R5

Il y a 4 bits par registre, donc 4 bits à transférer, donc il faut 4 lignes de bus. Chaque ligne est
construite en utilisant un multiplexeur
Il faut 4 multiplexeurs : le multiplexeurs i choisit un parmi 5 bits de position i provenant des
5 registres potentiellement source.
Les 4 bits d’un même registre doivent être sélectionnés en même temps pour son transfert
vers sa destination, par conséquents tous les multiplexeurs doivent avoir les mêmes entrées de
sélection.

2. Sélection de la destination :
Il y a 5 registres destination possibles, donc il faut 3 lignes de sélection D0, D1, D2, telles que
:

D0 D1 D2 Destination
0 0 0 R1
0 0 1 R2
0 1 0 R3
0 1 1 R4
1 0 0 R5
L’information de 4 bits provenant du registre source sélectionné, et se trouvant sur les
lignes de bus, est reliée aux entrées parallèles de tous les registre, seul le registre
destination sélectionné, est chargé par activation de son entrée de chargement.

26
Chapitre de rappels Conception des Systèmes à Microprocesseurs

Les entrées de chargement des registres destination sont commandées par un décodeur
aux entrées D0, D1, D2, puisqu’une seule de ses sorties est égale à 1 à la fois, et qu’on a
besoin de charger un seul registre.

D0
D1 DCD
D2

L1 R1 L2 R2 L3 R3 L4 R4 L5 R5

S0 S0 S0 S0
S1 MUX S1 MUX S1 MUX S1 MUX
S2 S2 S2 S2

Bit 1 Bit 2 Bit 3 Bit 4

Circuit logique d’un bus à 4 lignes


Communication entre 5 registres R1 à R5

- Application2 : Refaire l’exercice précédent en utilisant des buffers à 3 états.


1. Sélection de la source :
Le raisonnement pour la sélection de la source est similaire à l’exercice précédent. La
différence réside dans le fait que des buffers à 3 états sont utilisés à la place des
multiplexeurs. Chaque multiplexeur à 5 entrées est remplacé par 5 buffers à 3 états.
Comme un seul des 5 buffers est activé à la fois, un décodeur commandé par S0, S1, S2, est
utilisé.
E1
E1 S
E2
E2 S E3
E3 MUX E4
E4
E5
E5
sel
3
sel 3 DCD
3x8

b- Circuit équivalent à base de 5


a- Multiplexeur à 5
buffers à 3 états
27
Chapitre de rappels Conception des Systèmes à Microprocesseurs

2. Sélection de la destination :
Pour la sélection de la destination, le raisonnement est identique, ainsi que le circuit.

D0
D1 DCD
D2

L1 R1 L2 R2 L3 R3 L4 R4 L5 R5

S0 DCD
S1
S2 3x8

Ligne 1
Ligne 2
Ligne 3
Ligne 4

Système de bus utilisant des buffers à trois états

Les lignes de sélection des sources et des destinations proviennent de l’unité de contrôle

3. Micro opérations Arithmétiques :


Le transfert inter registres ne modifie pas l’information transférée. Ce qui n’est pas le cas des
micro opérations arithmétiques et logiques, qui nécessitent, en plus des registres de stockage,
des circuits de traitement de l’information.

Les micro opérations arithmétiques de base les plus fréquentes, peuvent être résumées dans le
tableau ci dessous :

A ← A+B Addition Et transfert vers A


A ← A-B Soustraction Et transfert vers A
A ← A+1 incrémentation Et transfert vers A
A ← A-1 décrémentation Et transfert vers A
A←A Complément à 1 Et transfert vers A
A ← A+1 Complément à 2 Et transfert vers A
A ← A+B Addition de A et B Et transfert vers A
A ← A+B+1 Addition de A et B+1 Et transfert vers A

28
Chapitre de rappels Conception des Systèmes à Microprocesseurs

Le circuit de base des opérations arithmétiques est l’additionneur.


Les autres opérations arithmétiques, comme celles du tableau ci dessus, ou la multiplication,
ou la division …, peuvent toutes être exécutées, ou programmées autour de l’opération
d’addition. Nous nous contenterons d’exprimer l’addition en LTR.

Les micro opérations d’addition parallèles entre deux registres à n bits sont exécutées par un
additionneur complet parallèle à n bits (seul, ou intégré dans une unité arithmétique et logique
UAL).
L’additionneur à n bits est constitué de n additionneurs complets à 1 bit reliés en cascade.

R1 R2

Rs FA FA FA FA Re

S4 S3 S2 S1

Circuit d’addition de 2 registres à 4 bits R1 et R2

Les cas suivants peuvent se présenter :


P : A ← (B)+(C)
P : A ← (A)+(B)
P : E A ← (A)+(B) (E bascule d’extension de A pour stocker la retenue.)

Dans les trois cas les registres sources sont des registres disposant de sorties parallèles, et le
registre destination un registre à chargement parallèle. Une UAL, ou un additionneur parallèle
peuvent être choisis pour exécuter l’opération d’addition parallèle.

- circuit autour de l’additionneur : - circuitautour de l’UAL

P
L A B

P
L A B Retenue en
sortie
Retenue en sortie Retenue en entrée Retenue en
Sélection de entrée
Additionneur // à n bits
l’addition

Les lignes de sélection de l’addition sont fonction de P

29
Chapitre de rappels Conception des Systèmes à Microprocesseurs

4. Micro opérations Logiques :


Les micro opérations logiques sont effectuées bit par bit, et diffèrent ainsi dans la conception
de leur circuit, des opérations arithmétiques.
En effet, la propagation de la retenue nécessite pour les opérations arithmétiques, des circuits
de base (pour le traitement d’un bit) disposés en cascade. Alors que pour les opérations
logiques, les circuits de bases sont disposés en parallèle, et sont dupliqués autant de fois que
cela s’avère nécessaire (n circuits de base pour n bits), sans influence des uns sur les autres.

Ainsi, on peut exécuter les opérations logiques suivantes sur deux bits Ai et Bi donnés :

Ai Bi F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16


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

16 fonctions logiques sont ainsi définies et peuvent être exécutées sur deux bits donnés ;
certaines ont des appellations connues, comme F1 : mise à zéro ou reset, , F2 : ET, F7 : XOR,
F15 : OR, F16 mise à 1 ou SET.

- Application:
Réaliser un registre A à 4 bits, capable d’exécuter les opérations logiques suivantes décrites
en LTR, en utilisant des bascules JK.

P1 : A ← A ⊕ B ; ou exclusif
P2 : A ← B ; transfert
P3 : A ← A ∧ B ; ET
P4 : A ← Ā ; NOT
P5 : A ← 0 ; mise à zéro (reset)
Le registre B contient le deuxième opérande mais n’est jamais modifié. Seul le registre A
reçoit le résultat et subit des modifications. On réalisera donc le circuit du registre A
Toutes ces opérations sont logiques ; par conséquent, il suffit de réaliser le circuit pour le bit
de position i et de le dupliquer 4 fois.
Pour le bit Ai, il s’agit de construire un circuit séquentiel possédant 2 états possibles, 0 ou 1 .
La partie séquentielles du circuit est constituée donc d’une seule bascule, dont les entrées J et
K sont contrôlées par la partie combinatoire du circuit, qui est à déterminer.

Circuit
combinatoire J Q
Entrée secondaire
Entrées primaires K Q

30
Chapitre de rappels Conception des Systèmes à Microprocesseurs

Dans notre cas l’entrée secondaire est Ai et les entrées primaires sont : Bi, P1, P2, P3, P4, et
P5.
Les étapes habituelles à suivre consistent à dresser la table d’état, puis d’en déduire la table de
transition, puis le circuit de contrôle des entrées J et K de la bascule.
On remarque qu’avec les 6 entrées primaires, et l’entrée secondaire, la table d’état posséderait
128 entrées ou lignes, ce qui prendrait beaucoup de temps à traiter, et introduirait des erreurs.
On procède donc de la manière suivante :
Pour chaque fonction de contrôle Pj activée (les autres ne pourraient certainement pas l’être),
on dresse la table d’état, la table de transition, et on déduit les entrées de la bascule Jj, et Kj.
Les valeurs finales, respectives de J et K seront alors :

J = P1J1 + P2J2 + P3J3 + P4J4 + P5J5


K = P1K1 + P2K2 + P3K3 + P4K4 + P5K5
P1=1 : Ou exclusif P2=1 : Transfert

Ai Bi Ai+ J K Ai Bi Ai+ J K
0 0 0 0 X 0 0 0 0 X
0 1 1 1 X 0 1 1 1 X
1 0 1 X 0 1 0 0 X 1
1 1 0 X 1 1 1 1 X 0

J1= Bi J2= Bi
K1= Bi K2= Bi

P3=1 : ET P4=1 : NOT

Ai Bi Ai+ J K Ai Bi Ai+ J K
0 0 0 0 X 0 0 1 1 X
0 1 0 0 X 0 1 1 1 X
1 0 0 X 1 1 0 0 X 1
1 1 1 X 0 1 1 0 X 1

J3= 0 J4= 1
K3= Bi K4= 1

P5=1 : mise à zéro

Ai Bi Ai+ J K
0 0 0 0 X J= P1Bi+P2Bi+P4
0 1 0 0 X
K= P1Bi+P2Bi+P3Bi+P4+P5
1 0 0 X 1
1 1 0 X 1

J5= 0 Ce qui permet de déduire le circuit de contrôle de


K5= 1 la bascule i du registre

31
Chapitre de rappels Conception des Systèmes à Microprocesseurs

Il suffira de le dupliquer 4 fois pour obtenir le circuit total du registre A.

5. Micro opérations de décalage:


Il existe quatre types de décalage :
- Ledécalageàtransfert série: Shr, Shl, insertion d’un bit de donnée par l’entrée série du
registre à décalage utilisé.
- Ledécalagelogique: Lshr, Lshl, insertion d’un zéro, ‘0’, par l’entrée série
- Ledécalagearithmétique : Ashr, division par 2, Ashl, multiplication par 2 ; le bit introduit
par l’entrée série du registre, lors du décalage, dépend de la représentation du nombre
(valeur absolue et signe, complément à deux …), et de l’opération (multiplication ou
division) effectuée
- Ledécalagecirculaire : Cir, Cil, le bit extrême sortant du registre lors du décalage, est
réintroduit par l’entrée série.
En langage de transfert inter registre ces différents décalage pourraient être représentés
comme suit :
- S : Shr, Cir B Transfert série par décalage à droite ; le
ou S : A1 ← Bn , B1 ← Bn registre source B ne perd pas son contenu
- L : Lshl A ; on sous entend An ← 0 ; décalage logique à gauche
- C : Cir A ; on sous entend A1 ← An ; décalage circulaire à droite
- M : Ashl A ; décalage de A à gauche pour une multiplication par 2.
NB : les expressions shl et shr ont été gardées car les microprocesseurs existants possèdent
des répertoires d’instructions basés sur l’anglais et que sh représente ‘shift’, qui veut dire
décaler, R tient pour ‘right’ (droite), et L pour ‘left’ (gauche).

IV. Les fonctions de contrôle:


Les fonctions de contrôle sont les signaux binaires qui activent les micro opérations. Elles
proviennent de l’unité de contrôle.
Comme nous l’avons indiqué précédemment, l’unité de contrôle les génèrent à partir des
informations contenues dans les instructions qui constituent les programmes.
Mémoire centrale<-Programme

RI <- instruction Une instruction est lue de


la mémoire et stockée
dans le registre
d’instruction; elle est
L’unité de contrôle ensuite décodée par
décode (RI) l’unité de contrôle

L’unité de contrôle envoie les ordres Exécution des micro opérations de


l’instruction par l’unité de traitement
(les Fonctions)à l’unité de traitement
pour activer les micro opérations

32
Chapitre de rappels Conception des Systèmes à Microprocesseurs

1. Méthodes de conception :
Actuellement la méthode la plus utilisée dans la génération des fonctions de contrôle
consiste à combiner les ordres contenus dans les instructions, avec des signaux de
synchronisation, et des conditions de contrôle préalablement définies. L’approche de la
conception est modulaire et synchronisée.
L’inconvénient majeur de cette méthode reste le nombre important de portes logiques et de
bascule (partiellement éliminé grâce aux capacités d’intégration de plus en plus grandes).
Ses principaux avantages sont la détection facile des pannes, et la standardisation de la
méthodologie de conception qui a permis le développement de langages de programmation
de circuits (tels que le VHDL), et donc de conception assistée par ordinateurs.
Une seconde méthode, qui consiste à utiliser le principe d’analyse et de synthèse des
circuits séquentiels (diagramme d’état, table d’état, tables de transitions,…), permettrait
d’obtenir un circuit minimisé si elle était développée correctement.
Le trop grand nombre d’états, et de variables à manipuler entraîne des difficultés pratiques
dans la conception, et la réalisation des circuits par cette méthode. Il est difficile pour le
concepteur de déduire de façon précise toutes les séquences et fonctionnement du système, et
donc de poser le problème, ou de repérer une panne (contrairement à la conception modulaire
de la première méthode).
La troisième méthode utilise le contrôle micro programmé ou une mémoire de contrôle.
Dans ce cas une partie de la mémoire (généralement de la ROM) est utilisée comme unité de
contrôle (au lieu d’un circuit combinatoire). On y stocke les bits (0 et 1) des fonctions de
contrôle de tous les registres, celles ci sont envoyées selon les besoins vers l’unité de
traitement. Consommant un nombre de portes et de bascules moins importants que les deux
méthodes précédentes, cette méthode est très efficace, on notera cependant sa lenteur par
rapport à ces dernières.

2. Génération des signaux de synchronisation :


La division du temps d’un processeur synchrone en cycles, et la division de chaque cycle en
impulsions d’horloge ordonnées durant lesquelles des micro opérations précises doivent être
exécutées, nécessite la création de signaux de synchronisation, les Ti, permettant de
déterminer, à chaque instant, dans quelle impulsion du cycle on se trouve.
Seul le signal Ti est égal à 1 à la ième impulsion d’horloge du cycle du cycle. Tj = 0 si j ≠ i .

Ainsi si le nombre d’impulsions d’un cycle est 4, il sera nécessaire de générer 4 signaux de
synchronisation T0,T1, T2, T3, tels que :

T0

T1

T2

T3
33
Chapitre de rappels Conception des Systèmes à Microprocesseurs

Chapitre 2 Unité centrale de traitement, Langage de Transfert inter Registre

Les Ti peuvent être implémentés en utilisant un compteur en anneau ou un compteur et un


décodeur.

Le compteur en anneau : c’est un registre à décalage dont un seul bit est allumé (mis à 1)
à la fois. Son entrée de décalage est mise à un et le bit sortant est relié à son entrée série de
sorte qu’il effectue un décalage circulaire en permanence, tant qu’il est alimenté par l’horloge.

1 0 0 0

T0 T1 T2 T3
• Exemple pour 4 signaux de synchronisation.
• Séquence initiale : 1000
• Le bit unique est décalé d’une position vers la suivante pour générer les signaux de
synchronisation
Le compteur et le décodeur : les sorties d’un compteur binaire progressif à deux bits,
alimenté par une horloge, sont reliées aux entrées d’un décodeur 2x4. Les signaux de
synchronisation apparaissent aux sorties du décodeur, puisqu’à chaque impulsion d’horloge le
compteur génère la combinaison suivante à l’entrée du décodeur.

Compteur binaire à 2 bits

DCD 2x4

T0 T1 T2 T3

3. Génération des fonctions de contrôle :


La description des circuits en LTR comprend deux parties :
- à droite la ou les micro opérations que le circuit doit réaliser
- à gauche : la fonction de contrôle qui les active.
Les fonctions de contrôle peuvent être :

- simples :

F : A ← (B)

34
Chapitre de rappels Conception des Systèmes à Microprocesseurs

- Combinées avec des signaux de synchronisation :

FT1+R’T3 : PC ← (PC)+1, MDR← M(MAR )

- Combinées avec des conditions :


P : Si condition alors micro opération

Exemple :
FT1 : C ← C+1
FT2 : PC ← (PC)+1, si C=0 ; incrémenter PC si le compteur C = 0

Ceci est équivalent à :

FT1 :C ← C+1
FT2 C : PC ← (PC)+1

La condition C=0 a été transformée en fonction de contrôle combinée avec la fonction de


contrôle initiale.

V. Conclusion:
Le langage de transfert inter registre, LTR, est un langage symbolique simple, qui permet de
décrire et de programmer en vue de le réaliser, le circuit de toute micro opération pouvant être
exécutée dans une unité centrale de traitement.

35
Chapitre de rappels Conception des Systèmes à Microprocesseurs

Organisations de processeurs

I. Introduction :
Les processeurs classiques diffèrent, dans leurs organisations, principalement par :
• Leurs structures de bus : données, adresse, contrôle, entrées/sorties
• L’organisation de leurs registres : un registre processeur principal, plusieurs registres
processeurs ou généraux, …
• Les modes d’adressage dont ils disposent
• Leurs répertoires d’instructions.

Suivant la puissance et la fonction du processeur que l’on désire concevoir, on choisira une
organisation spécifique pour répondre aux besoins formulés. Par exemple :
Plus de registres destinés à contenir les données et les résultats de traitement pour diminuer
le transfert d’information entre la mémoire, et l’unité centrale,
Plus d’instructions spécialisées pour minimiser la taille des programmes, et le temps
d’exécution,
Un seul registre accumulateur, si le temps d’exécution est moins important que la simplicité
du circuit…

Nous présentons dans ce qui suit les différents aspects des différentes organisations de
processeurs classiques.

II. Organisations de bus :


Les informations véhiculées dans un processeur sont de type :
• Données
• Adresses
• Contrôle
• Entrées/sorties
Les lignes de bus qui transportent ces informations à l’intérieur, et à l’extérieur (vers la
mémoire, et les périphériques) doivent être organisées de manière à assurer un maximum de
synchronisation et de stabilité (vu qu’il existe toujours un temps de propagation des
informations à travers les circuits, générant des retards, et un temps de stabilisation de ces
informations sur les lignes de bus).
Les différents types d’informations sus citées peuvent être transportées par :
• Un bus unique, totalement multiplexés : qui servira à transporter, grâce à une
multiplication de fréquence, et durant une impulsion d’horloge, tour à tour durant des sous
périodes, le contrôle, puis les adresses, puis les données.
Les informations de contrôle, et d’adresses, sont latchées, jusqu’à ce que la donnée soit
utilisée.

• Des bus partiellement multiplexés : Seuls deux ou trois types d’informations utilisent le
même bus toujours selon le même principe que celui énoncé pour le bus unique . Par exemple

36
Chapitre de rappels Conception des Systèmes à Microprocesseurs

les lignes d’adresse et de données partagent les mêmes lignes comme c’est le cas pour le
microprocesseur Intel 8085.

• Des bus totalement séparés : Dans ce cas des registres internes (non accessibles aux
programmeurs), dédiés, de données MDR, d’adresse MAR, d’entrées/sorties INPR, et OUTR,
d’état, de contrôle, … sont utilisés pour gérer les différents bus. Cette configuration est la plus
courante, quand le degré d’intégration du circuit le permet. Ces registres internes ne sont pas
concernés par l’organisation des registres processeurs chargés de contenir les données à
traiter, et les résultats de traitement, organisation développée dans ce qui suit.

III. Organisation des registres :


L’organisation des registres permet de déterminer la structure de l’unité de traitement, le
nombre de registres qui s’y trouvent, leurs connections à l’unité arithmétique et logique, ainsi
que le format des instructions du processeur.
1. Organisation à accumulateur :
a) Structure de l’unité de traitement :
Un seul registre processeur, l’accumulateur AC, contient les données à traiter, et le résultat de
tout traitement :
• Pour les opérations à un seul opérande : La donnée unique se trouve dans AC, et le
résultat de son traitement est également mis dans AC. Par exemple, c’est le cas pour
l’opération d’incrémentation INC, ou de complémentation CMA…
• Pour les opérations à 2 opérandes : La première donnée a déjà été mise dans AC, et la
deuxième donnée est lue par l’instruction de la mémoire, et va se trouver par conséquent dans
le registre MDR. Les deux registres AC, et MDR doivent donc être reliés respectivement, aux
deux entrées A et B de l’UAL. Le résultat de toute opération est stocké dans AC.
On déduit la structure suivante pour l’unité de traitement :

AC MDR

b) Format de l’instruction :
Puisque le premier opérande se trouve toujours dans AC, le format d’une instruction aura la
structure suivante :
37
Chapitre de rappels Conception des Systèmes à Microprocesseurs

• Pour les opérations à un seul opérande, l’instruction doit spécifier uniquement le code de
l’opération à exécuter, et sera une instruction à zéro zone d’adresse.

OP

• Pour les instructions à deux opérandes, l’instructions doit spécifier le code de l’opération
et l’adresse du deuxième opérande (le premier opérande, et le résultat devant se trouver dans
AC), et sera par conséquent une instruction à une seule zone d’adresse.

OP ADR

Des variantes, de processeurs possédant une architecture basée sur une organisation à
accumulateur, existent. On peut avoir par exemple des processeurs à deux accumulateurs,
comme le Motorola 6809.

2. Organisation à registres généraux :


a) Structure de l’unité de traitement :
Dans ce cas plusieurs registres R1 à Rn, appelés registres généraux, ou registres processeurs,
peuvent contenir les données à traiter, et les résultats de traitement.
Tous les registres généraux (ainsi que le MDR, qui peut contenir une donnée lue ou à écrite
dans la mémoire) doivent avoir la capacité d’être reliés à l’UAL (en tant que source A,
source B, ou destination).
Il est alors nécessaire de construire un bus A pour la sélection de la source A, un bus B pour la
sélection de la source B, et un bus C pour la sélection de la destination du résultat de
traitement.

38
Chapitre de rappels Conception des Systèmes à Microprocesseurs

Pour la construction de chacun des bus, on procède en déterminant, le nombre de lignes de


sélection, le nombre de lignes de bus, ainsi que les circuits logiques nécessaires (décodeurs,
multiplexeurs ou buffers à trois états …

b) Format de l’instruction :
Le format d’une instruction pour un processeur à registres généraux peut être
• à deux zones d’adresse si la destination est aussi source A.
exemple :
ADD R1, R5 ; R1 (R1) + (R5)
OP ADR1 ADR2

• à trois zones d’adresse si la destination est différente des deux sources.


exemple :
ADD R1, R5, R2 ; R1 (R2) + (R5)
OP ADR1 ADR2 ADR3

c) Application :
Donner la structure de l’unité de traitement d’un processeur possédant 10 registres généraux
à 8 bits, pouvant tous être source A, source B ou destination, en utilisant des buffers à 3 états:
- sélectiondelasourceA:
• Il existe 10 sources possibles, donc 4 lignes de sélection : a0, a1, a2, a3
• Les registres sont à 8 bits, donc on a 8 lignes de bus
• Chaque registre a besoin de 8 buffers à 3 états pour communiquer avec l’entrée A de
l’UAL, s’il est sélectionné comme source A par les lignes de sélection ; un seul
registre pouvant être activé à la fois, on utilise un décodeur 4x16, dont seulement 10
sorties seront utilisées
a0 a1 a2 a3 Source A
0 0 0 0 R1
0 0 0 1 R2
0 0 1 0 R3
0 0 1 1 R4
0 1 0 0 R5
0 1 0 1 R6
0 1 1 0 R7
0 1 1 1 R8
1 0 0 0 R9
1 0 0 1 R10

39
Chapitre de rappels Conception des Systèmes à Microprocesseurs

- sélectiondelasourceB:
• Il existe 10 sources possibles, donc 4 lignes de sélection : b0, b1, b2, b3
• Les registres sont à 8 bits, donc on a 8 lignes de bus
• Chaque registre a besoin de 8 buffers à 3 états pour communiquer avec l’entrée B de
l’UAL, s’il est sélectionné comme source B par les lignes de sélection ; un seul
registre pouvant être activé à la fois, on utilise un décodeur 4x16, dont seulement 10
sorties seront utilisées
b0 b1 b2 b3 Source B
0 0 0 0 R1
0 0 0 1 R2
0 0 1 0 R3
0 0 1 1 R4
0 1 0 0 R5
0 1 0 1 R6
0 1 1 0 R7
0 1 1 1 R8
1 0 0 0 R9
1 0 0 1 R10

- sélectiondeladestinationC:
• Il existe 10 destinations possibles, donc 4 lignes de sélection : c0, c1, c2, c3
• Les registres sont à 8 bits, donc on a 8 lignes de bus. La ligne i va de la sortie i de
l’UAL vers toutes les entrées i des 10 registres. Seul le registre dont l’entrée de
chargement sera activée, recevra le résultat du calcul de l’UAL
• on utilise un décodeur 4x16, dont seulement 10 sorties seront utilisées, afin d’activer
l’entrée de chargement Li (une seule à la fois) des registres
c0 c1 c2 c3 Destination C
0 0 0 0 R1
0 0 0 1 R2
0 0 1 0 R3
0 0 1 1 R4
0 1 0 0 R5
0 1 0 1 R6
0 1 1 0 R7
0 1 1 1 R8
1 0 0 0 R9
1 0 0 1 R10

40
Chapitre de rappels Conception des Systèmes à Microprocesseurs

Bus A Bus B
1 8
L R1
A B

1 8
L R10

ligne 1 ligne 8 ligne 1 ligne 8

En conclusion, 3 décodeurs 4x16 seront utilisés :


- Le premier décodeur dont les lignes de sélection sont a0, a1, a2 , a3, active les buffers
sortants du registre source A.
- Le deuxième décodeur dont les lignes de sélection sont b0, b1, b2 , b3, active les buffers
sortants du registre source B.
- Le troisième décodeur dont les lignes de sélection sont c0, c1, c2 , c3, active le
chargement de l’un des registres destination C.

41
Chapitre de rappels Conception des Systèmes à Microprocesseurs

IV. Les différents modes d’adressage :


Les processeurs ont chacun, ses propres modes de fonctionnement pour accéder à des
informations en mémoire, en lecture, ou en écriture. Quand une adresse est spécifiée dans une
instruction, le mode d’adressage indique la façon d’utiliser l’adresse pour lire de, ou écrire
une information en mémoire ; les plus courants sont exposés dans ce qui suit :
1. Mode d’adressage immédiat :

ADD AC, N ; AC (AC) + N


OP M N

N est l’opérande ; il n’y a pas d’accès à la mémoire.

2. Mode d’adressage direct :

ADD AC, N ; AC (AC) + M(N) ; M(N) = (N)


OP M N

mémoire

opérande

N est l’adresse de l’opérande

3. Mode d’adressage indirect :


a) indirect registre :

ADD AC, N ; AC (AC) + M(N) ; M(N) = ((registre))


OP M N

mémoire

Registre

opérande

N est le code du registre qui contient l’adresse de l’opérande.

42
Chapitre de rappels Conception des Systèmes à Microprocesseurs

b) indirect mémoire:

ADD AC, N ; AC (AC) + M(N) ; M(N)= ((N))


OP M N

mémoire

Y Opérande

N est l’adresse de l’adresse de l’opérande

4. Mode d’adressage indexé

ADD AC, N ; AC (AC) + M(N+(RX))


OP M N
mémoire

Registre index
+ opérande

L’adresse de l’opérande est obtenue en ajoutant N au contenu du registre d’indexage

5. Mode d’adressage à registres d’index multiples :

Ce mode est un mode d’adressage indexé, mais comme plusieurs registres d’index peuvent
être utilisés, une nouvelle zone est ajoutée dans le format de l’adresse pour choisir un des
registres index.

OP M RX N

6. Mode d’adressage auto incrément, ou auto décrément :

Mode d’adressage indexé où le registre index est automatiquement incrémenté (ou


décrémenté selon l’instruction spécifiée) dès qu’il est utilisé.

43
Chapitre de rappels Conception des Systèmes à Microprocesseurs

7. Mode d’adressage relatif :

OP M N

mémoire

Instructiondesaut

PC
+ instruction

Dans ce mode d’adressage, N est ajouté au contenu du PC pour calculer l’adresse de


l’instruction vers laquelle l’instruction de saut désire se brancher.
On peut citer l’exemple de l’instruction LOOP du 286 ; dans sa traduction en langage
machine, elle remplace l’adresse du début de boucle par le nombre d’octets entre l’adresse de
LOOP, et l’adresse du début de la boucle.

8. Mode d’adressage à registre d’extension :

OP M N Adresses calculées
pour (RE) =00

Registre d’extension Adresses calculées


pour (RE) =00

N Adresses calculées
pour (RE) =00

Adresses calculées
pour (RE) =00

mémoire

Le contenu de la zone d’adresse N , est concaténé avec le contenu d’un registre d’extension
d’adresse RE pour le calcul des différentes adresses. L’exemple ci-dessus montre un registre
d’extension de 2 bits. On remarque que :
- la taille de la mémoire adressée est multipliée par 4 (augmentation matérielle ou
virtuelle de la mémoire)
- chaque zone peut être réservée à une application, ou à un utilisateur
- la relocation de programme peut être facilement exécutée sans risque de
chevauchement d’applications

44
Chapitre de rappels Conception des Systèmes à Microprocesseurs

9. Mode d’adressage à registre de base :

OP M N Adresses calculées
Application1
pour (RB) =valeur1

Adresses calculées
Registre de base Application2
pour (RB) =valeur2

+ Application3 Adresses calculées


pour (RB) =valeur3

Application4 Adresses calculées


pour (RB) =valeur4

mémoire

Le contenu de la zone d’adresse N , est ajouté au contenu d’un registre de base RB pour le
calcul des différentes adresses. Pour chaque valeur du registre de base des zones de la
mémoire sont définies:
- chaque zone peut être réservée à une application, ou à un utilisateur, pour les
programmes et les données.
- la relocation de programme peut être facilement exécutée sans risque de
chevauchement d’applications
Ce genre d’adressage a permis le développement des logiciels à multi fenêtrage comme
Microsoft Windows, grâce à la structure du microprocesseur 8086, puis 80286… .
En effet ce mode d’adressage est illustré sur ces microprocesseurs par l’existence des
registres segment (les appellations des modes d’adressages peuvent différer d’un constructeur
à l’autre).

10. Modes d’adressage pré indexé, et post indexé :

Ces modes d’adressage sont une combinaison du mode d’adressage indexé, et indirect :
a) Mode d’adressage pré indexé (indexé puis indirect):

ADD AC, N ; AC (AC) + ((N+(RX)))


OP M N
mémoire

Registre index
+ Y

opérande

L’adresse de l’adresse de l’opérande est obtenue en ajoutant N au contenu du registre


d’indexage.
45
Chapitre de rappels Conception des Systèmes à Microprocesseurs

b) Mode d’adressage post indexé (indirect puis indexé):

ADD AC, N ; AC (AC) + ((N)+(RX))


mémoire
OP M N

Y
Registre index
opérande
+

N est l’adresse de l’adresse à indexer pour obtenir l’adresse de l’opérande.

D’autres modes d’adressage existent ; certains sont plus complexes, d’autres sont la
combinaison de plusieurs modes d’adressage de base, d’autres portent simplement des noms
différents.

IV. Les répertoires d’instructions


Les processeurs diffèrent les uns des autres par les ensembles d’instructions (ou répertoires
d’instructions), qu’ils peuvent exécuter. Afin de pouvoir générer et exécuter n’importe quelle
opération, sous forme d’instruction ou de programme, il est indispensable de doter un
processeur d’un répertoire d’instruction complet , même s’il est minimal.
Il doit englober les instructions :
• Arithmétiques de base : addition et complémentation

• Logique de base : not et OR, ou not et AND par exemple


• De contrôle de programme : saut, branchement, appel et retour de sous programme…
• De décalage : à gauche, à droite, logique ou de transfert série ou circulaire…
• D’Entrée/Sortie : IN, et OUT par exemple.
Avec l’avènement des circuits VLSI l’engouement a été tel, que les concepteurs de
microprocesseurs ont voulu implanter le circuit de toutes sortes d’instructions, dont les moins
utilisées ; le résultat fut la génération de processeurs CISC (complex instruction set
computers : ou processeurs à jeux d’instructions complexes), avec un circuit intégré encombré,
difficile à tester, pas nécessairement performant.
Les processeurs RISC (reduced instruction set computers) ont alors été conçus. L’idée était de

46
Chapitre de rappels Conception des Systèmes à Microprocesseurs

déterminer statistiquement les instructions les plus utilisées, et d’en implanter le circuit. Le
résultat fut assez concluant, et les processeurs RISC très performants.

Cependant, pour un gain plus important en puissance, un compromis entre les processeurs
RISC et CISC fut choisi pour la réalisation des processeurs puissants actuels, consistant en la
combinaison de ces deux types de processeurs : les instructions les plus utilisées sont
implantées sur circuit, alors que d’autres, relativement moins utilisées, sont stockées sous
forme de programme dans une mémoire à l’intérieur même du circuit intégré du
microprocesseur ; ce sont des microprogrammes.

47

Vous aimerez peut-être aussi