Chapitre I

publicité
Introduction générale
Introduction aux ordinateurs
Un ordinateur est un ensemble d’équipements chargés de traiter des données:
Unités
d’entrée
Unité de
traitement
Unités de
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.
1
Introduction générale

Introduction aux ordinateurs
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, …
sont appelés périphériques, ou unités d’entrée sortie (E/S).
La partie de l’ordinateur qui nous intéresse particulièrement est le processeur,
puisque le but de la première partie
de ce cours est la conception d’un processeur de base.
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’electronique digitale vues en troisième
année, et nécessaires à la conception du processeur de base, et à définir une méthode de
conception modulaire d’un processeur, actuelle, et valable pour concevoir du plus simple au
plus sophistiqué et complexe des processeurs.
Dans le premier chapitre nous rapellerons les principaux circuits combinatoires et
séquentiels succeptibles d’être utilisés dans un processeur.
Dans le chapitre 2 nous introduirons le langage de transfert inter registre (LTR), qui est un
langage de programmation de circuit (la partie hard, et non la partie soft), et qui permet de
décrire toute opération logique se déroulant dans un processeur à chaque impulsion
d’horloge.
Le chapitre 3 décrira différentes organisations de processeurs généraux classiques.
Les informations de ces trois premiers chapitres seront utilisées dans le chapitre 4 pour
effectuer les choix et hypotèses, et concevoir un processeur de base possédant un
configuration minimale, mais complète et fonctionnelle.
Le chapitre 5 conçoit une version micro programmée (unité de contrôle programmée et non
câblée) du processeur de base.
2
Chapitre 1
Rappels
Chapitre I
Rappels
I.
Introduction :
La conception du processeur de base nécessite le rappel de notions d’Electronique digitale
vues en troisième année.
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 impulsion d’horloge par
impulsion d’horloge. 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 (comme c’était le cas en troisième année).
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.

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 vers une source sélectionnée parmi plusieurs possibles, vers une destination
3
Chapitre 1
Rappels
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 ont 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
0
0
1
1
y
0
1
0
1
s
0
1
1
0
c
0
0
0
1
a- Table de vérité
s=xy
x
y
s
c = xy
c
b- circuit logique
- 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.
4
Chapitre 1
Rappels
s=xyz
c = xy + z(x  y)
x
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
s
0
1
1
0
1
0
0
1
c
0
0
0
1
0
1
1
1
s
x
y
z
c
b- circuit logique
a- Table de vérité
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
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
s
0
1
1
0
1
0
0
1
c
0
1
1
1
0
0
0
1
z
a- Table de vérité
3
s
x
y
c
b- circuit logique
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 :
5
Chapitre 1
-
Rappels
Le décodeur 2x4
x y
x
0
0
1
1
DCD
2x4
y S1 S2 S3
0 1 0 0
1 0 1 0
0 0 0 1
1 0 0 0
b- table de vérité
a- schéma bloc
S4
0
0
0
1
o
o
S1
o
S2
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 dans le chapitre 2 lors de la
construction de bus ou dans de nombreuses autres applications.
-
Les décodeurs avec ligne d’activation :
S1
S2
S3
S4
x
DCD
2x4
y
act
schéma bloc
Si la ligne d’activation est égale à 1, le décodeur fonctionne normalement.
Si la ligne d’activation est égale à zéro, toutes les sorties du décodeur sont nulles.
-
Application
Construction d’un décodeur 3x8 à partir de deux décodeurs 2x4 avec ligne d’activation.
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
S1 S2 S3 S4 S5 S6 S7 S8
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
b
x
c
y
a
act
DCD
2x4
x
y
Table de vérité
DCD
2x4
S1
S2
S3
S4
S5
S6
S7
S8
act
6
Chapitre 1
Rappels

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.
2n sorties
E
DMUX
sel
n
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.
7
Chapitre 1
-
Rappels
Exemple: Multiplexeur 4x1
E1
E2
E3
E4
S0
0
0
1
1
S
MUX
sel
S1
0
1
0
1
S
E1
E2
E3
E4
b- Table de vérité
n
a- Schéma bloc
S0 S1
o
o
E1
o
E2
E3
S
o
E4
c- circuit logique
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
Buffer à 3 états
S
E
Interrupteur
Un buffer à 3 états est équivalent à un interrupteur qui peut être soit ouvert, soit fermé.
8
Chapitre 1
-
Rappels
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
E3
E4
E1
E2
E3
E4
S
MUX
sel
sel
2
2
S
DCD
2x4
b- Circuit équivalent à base de 4
buffers à 3 états
a- Multiplexeur à 4 entrées
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.
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
H
R
Q
S
Q
a- Schéma bloc
S R Q+
00 Q
01 0
10 1
1 1 -b- Table d’état
QQ+ S R
00 0X
01 10
10 01
11 X0
b- Table d’excitation
9
Chapitre 1
-
Rappels
La bascule JK
H
J
Q
K
Q
J K Q+
00 Q
01 0
10 1
11 Q
a- Schéma bloc
-
b- Table d’état
JK
0X
1X
X1
X0
b- Table d’excitation
La bascule D
H
D
Q
Q
a- Schéma bloc
-
QQ+
00
01
10
11
D
Q+
0
0
1
1
QQ+
00
01
10
11
b- Table d’état
D
0
1
0
1
b- Table d’excitation
La bascule T
H
T
Q
Q
a- Schéma bloc
QQ+
00
01
10
11
T Q+
0
Q
1
Q
T
0
1
1
0
b- Table d’excitation
b- Table d’état
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.
H
Entrées secondaires
Entrées primaires
Circuit
combinatoire
J
Q
K
Q
Sorties
H
J
Q
K
Q
10
Chapitre 1
2
Rappels
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:
H
S
Q
R
Q
Y
Y
S
Q
R
Q
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 simultanné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.
- Note importante:
Nous formulons ici deux hypothèses importantes que nous utiliserons tout au long du cours
TEC 586;
 1ère hypothèse: Tous les circuits séquentiels sont à base de bascules maître-esclaves.
 2ème hypothèse: Tous les circuits séquentiels sont synchrones (excités par une
même horloge).
3
Les registres:
Un registre est un ensemble de bascules , et 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.
11
Chapitre 1
4
Rappels
Les compteurs binaires:
Les compteurs binaires avec chargement parallèle, remise à zéro, et autres fonctions
existent.
Les compteurs à séquence binaire, et progressifs-regressifs (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éoires, 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é 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:
Données
n
Adresses
k
Lec
ecrit
RAM
mxn
Sorties
n
La RAM mxn est une mémoire de
m mots de n bits, et possède :
 n lignes de données en entrée
 n lignes de données en sortie
 Un bus de k lignes d’adresses
tel que 2k=m
 Un bus de contrôle constitué
de 2 lignes de commande de
lecture et d’écriture.
Schéma bloc d’une RAM mxn
12
Chapitre 1
-
Rappels
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 :
Sorties
n
ROM
mxn
Adresses
k
La ROM mxn est une mémoire de
m mots de n bits, et possède :
 n lignes de données en sortie
 Un bus de k lignes d’adresses
tel que 2k=m
 Eventuellement une ligne
d’activation , dont la présence
permet de construire des ROM
de plus grande capacité
act
Schéma bloc d’une ROM mxn
-
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:
D
lect
CB
S
ecri
sel
Cellule de base : schéma bloc
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
Elle possède en sortie :
 Une de sortie de donnée S
Si la cellule est sélectionnée en lecture, son
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.
Hypothèse : une CB non sélectionnée en
lecture a une sortie nulle.
13
Chapitre 1
Rappels

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
D
L
E
sel
D
L
E
sel
D
L
E
sel
D
L
E
sel
D
L
E
sel
D
L
E
sel
CB S
D0
D1
D2
A0
A1
A2
CB S
CB S
DCD
3x8
Lect
CB S
MUX
8x1
Ai
CB S
CB S
MUX
8x1
S0
S1
S2
MUX
8x1
3
D
L
E
sel
CB S
D
L
E
sel
CB S
D
L
E
sel
CB S
Ecrit
RAM 8x3 : Schéma interne
14
Chapitre 1
-
Rappels
Application2 : Construction d’une ROM 8x4
Soit à construire une ROM 8x5 dont le contenu est donné dans la table ci-dessous :
A0
0
0
0
0
1
1
1
1
Adresse
A1
0
0
1
1
0
0
1
1
A2
0
1
0
1
0
1
0
1
mot S0
m1 0
m2 0
m3 1
m4 0
m5 0
m6 1
m7 0
m8 1
Contenu
S1 S2 S3
0 1 0
1 0 1
1 1 1
0 1 0
0 0 0
0 0 1
1 1 1
0 0 1
S4
0
1
1
0
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
15
Chapitre 1
Rappels
x
mot S0
m1 0
m2 0
m3 1
m4 0
m5 0
m6 1
m7 0
m8 1
Contenu
S1 S2 S3
0 1 0
1 0 1
1 1 1
0 1 0
0 0 0
0 0 1
1 1 1
0 0 1
S0
x
S4
0
1
1
0
0
0
1
0
Contenu de la ROM 8x5
x
xx
S1
x
A0
A1
A2
DCD
3x8
m1
m2
m3
m4
m5
m6
m7
m8
x
xx
S2
x
x x
xx
x
x x
S3
S4
x
Circuit combinatoire de la ROM 8x5
16
Chapitre 2
Unité centrale de traitement, Langage de Transfert inter Registre
Chapitre 2
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é centale 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édinie, 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.
17
Chapitre 2
II.
1
Unité centrale de traitement, Langage de Transfert inter Registre
L’unité centrale de traitement (UCT):
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.
Unité
centrale
Mémoire
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
L’unité de
contrôle décode
(RI)
L’unité de contrôle
envoie les ordres (les
Fi)à l’unité de
traitement
Une instruction est lue de
la mémoire et stockée
dans le registre
d’instruction; elle est
ensuite décodée par
l’unité de contrôle
Exécution de l’instruction
par l’unité de traitement
18
Chapitre 2
Unité centrale de traitement, Langage de Transfert inter Registre
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
Mémoire
centrale
RI
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
19
Chapitre 2
Unité centrale de traitement, Langage de Transfert inter Registre
la 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
MAR<-(PC)
MDR<-(MAR)
RI<-( MDR)
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.
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
é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
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 – registre

Arithmétique
20
Chapitre 2
Unité centrale de traitement, Langage de Transfert inter Registre

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
Montre les bits MSB et LSB
Registre A
A1 A2
Montre les cellules
A8
OP
ADR
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…
21
Chapitre 2
Unité centrale de traitement, Langage de Transfert inter Registre
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
L
Unité de
contrôle
A
B
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
contrôle
L
A
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).
22
Chapitre 2


Unité centrale de traitement, Langage de Transfert inter Registre
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
R1
R2
S6
S3
S2
R3
S5
Ligne de bus, une
pour chaque bit
S4
23
Chapitre 2
Unité centrale de traitement, Langage de Transfert inter Registre
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
- Application 1 : 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
0
0
0
0
1
S1
0
0
1
1
0
S2
0
1
0
1
0
Source
R1
R2
R3
R4
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.
24
Chapitre 2

Unité centrale de traitement, Langage de Transfert inter Registre
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
D2
R1
L1
S0
S1
S2
R2
L2
S0
S1
S2
MUX
DCD
R3
L3
S0
S1
S2
MUX
S0
S1
S2
MUX
Bit 3
Bit 2
Bit 1
R4
L4
L5
R5
MUX
Bit 4
Circuit logique d’un bus à 4 lignes la
communication entre 5 registres R1 à R5pour
-
Application 2 : 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
S
E1
E2
E2
S
E3
E3
MUX
E4
E4
E5
E5
sel
3
a- Multiplexeur à 5
entrées
sel
3
DCD
3x8
b- Circuit équivalent à base de 5
buffers à 3 états
25
Chapitre 2
Unité centrale de traitement, Langage de Transfert inter Registre
2. Sélection de la destination :
Pour la sélection de la destination, le raisonnement est identique, ainsi que le circuit.
D0
D1
D2
L1
S0
S1
S2
R1
L2
R2
DCD
L3
R3
L4
R4
R5
L5
DCD
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
A  A-B
A  A+1
A  A-1
AA
A  A+1
A  A+B
A  A+B+1
Addition
Soustraction
incrémentation
décrémentation
Complément à 1
Complément à 2
Addition de A et B
Addition de A et B+1
Et transfert vers A
Et transfert vers A
Et transfert vers A
Et transfert vers A
Et transfert vers A
Et transfert vers A
Et transfert vers A
Et transfert vers A
26
Chapitre 2
Unité centrale de traitement, Langage de Transfert inter Registre
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ération 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.
R2
R1
FA
Rs
FA
S4
FA
S3
FA
S2
Re
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 :
-
- circuit autour de l’UAL
P
P
L
A
B
Retenue en sortie
Additionneur // à n bits
Retenue en entrée
LL
A
B
Retenue en
sortie
Retenue en
entrée
Sélection de
l’addition
Les lignes de sélection de l’addition sont fonction de P
27
Chapitre 2
Unité centrale de traitement, Langage de Transfert inter Registre
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
0
0
1
1
Bi
0
1
0
1
F1
0
0
0
0
F2
0
0
0
1
F3
0
0
1
0
F4
0
0
1
1
F5
0
1
0
0
F6
0
1
0
1
F7
0
1
1
0
F8
0
1
1
1
F9 F10 F11 F12 F13 F14 F15 F16
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
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
P2 : A  B
P3 : A  A  B
P4 : A  Ā
P5 : A  0
; ou exclusif
; transfert
; ET
; NOT
; 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.
Entrée secondaire
Entrées primaires
Circuit
combinatoire
J
Q
K
Q
28
Chapitre 2
Unité centrale de traitement, Langage de Transfert inter Registre
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
Ai
0
0
1
1
Bi
0
1
0
1
Ai+
0
1
1
0
P2=1 : Transfert
J
0
1
X
X
K
X
X
0
1
Ai
0
0
1
1
Bi
0
1
0
1
J1= Bi
K1= Bi
J2= Bi
K2= Bi
P3=1 : ET
P4=1 : NOT
Ai
0
0
1
1
Bi
0
1
0
1
Ai+
0
0
0
1
J
0
0
X
X
K
X
X
1
0
J3= 0
K3= Bi
Ai
0
0
1
1
Bi
0
1
0
1
Ai+
0
1
0
1
0
1
X
X
Ai+
1
1
0
0
1
1
X
X
J
K
X
X
1
0
J
K
X
X
1
1
J4= 1
K4= 1
P5=1 : mise à zéro
Ai
0
0
1
1
J5= 0
K5= 1
Bi
0
1
0
1
Ai+
0
0
0
0
J
0
0
X
X
K
X
X
1
1
J= P1Bi+P2Bi+P4
K= P1Bi+P2Bi+P3Bi+P4+P5
Ce qui permet de déduire le circuit de
contrôle de la bascule i du registre A
29
Chapitre 2
Unité centrale de traitement, Langage de Transfert inter Registre
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 :
-
Le décalage à transfert série : Shr, Shl, insertion d’un bit de donnée par l’entrée série du
registre à décalage utilisé.
-
Le décalage logique : Lshr, Lshl, insertion d’un zéro, ‘0’, par l’entrée série
-
Le décalage arithmé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
-
Le décalage circulaire : 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
ou S : A1 ← Bn , B1 ← Bn
Transfert série par décalage à droite ; le
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
L’unité de contrôle
décode (RI)
L’unité de contrôle envoie les
ordres (les Fi)à l’unité de
traitement pour activer les micro
opérations
Une instruction est lue de
la mémoire et stockée
dans le registre
d’instruction; elle est
ensuite décodée par
l’unité de contrôle
Exécution des micro
opérations de l’instruction
par l’unité de traitement
30
Chapitre 2
Unité centrale de traitement, Langage de Transfert inter Registre
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. C’est la
méthode que nous adopterons pour la conception du processeur de base dans le chapitre IV.

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 . Cette méthode, très efficace, sera développée dans le chapitre V. Consommant un
nombre de porte et de bascules moins importants que les deux méthodes précédentes, 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
31
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)
-
Combinées avec des signaux de synchronisation :
FT1+R’T3 : PC ← (PC)+1, MDR← M(MAR)
32
Chapitre 2
Unité centrale de traitement, Langage de Transfert inter Registre
- 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.
C’est ce langage que nous utiliserons dans le chapitre IV pour décrire le processeur de base
que nous nous proposons de concevoir.
Mais avant cela nous allons présenter dans le chapitre III les différentes organisations de
processeurs classiques, afin d’en choisir une pour notre processeur de base.
33
Chapitre 3
Organisations de processeurs
Chapitre III
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 traitements 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
34
Chapitre 3
Organisations de processeurs
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
b)
MDR
Format de l’instruction :
Puisque le premier opérande se trouve toujours dans AC, le format d’une instruction aura la
structure suivante :
35
Chapitre 3

Organisations de processeurs
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 pour le Motorola 6800.
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 à écrire
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.
36
Chapitre 3
Organisations de processeurs
On peut remplacer les multiplexeurs par des buffers à 3 états pour la sélection des sources A
et B.
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
;
OP
R1  (R2) + (R5)
ADR1 ADR2 ADR3
c)
Application :
Donner la structure de l’unité de traitement d’un processeur possédant 10 registres généraux
en utilisant des buffers à 3 états:
37
Téléchargement