Académique Documents
Professionnel Documents
Culture Documents
24 janvier 2001
TABLE DES MATIERES
Introdu
tion . . . . . . . . .
Historique . . . . . . . . . .
Ma
hine Von Neumann . .
Aper
u . . . . . . . . . . . .
2.4.1 Dispositifs de base .
2.4.2 Unites fon
tionnelles
2.5 Con
lusion . . . . . . . . .
9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Pre-requis
4 Cir uits de al ul
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
12
12
14
14
15
16
18
19
20
20
20
20
22
22
23
24
26
28
29
35
36
36
36
38
40
40
45
49
TABLE DES MATIERES
5 Memoire
5.1
5.2
5.3
5.4
5.5
5.6
Introdu
tion . . . . .
Les
ara
teristiques .
Mode d'a
es . . . .
Memoire prin
ipale .
Memoire
a
he . . .
Exemple : le pentium
. .
. .
. .
. .
. .
II
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6 Inter onnexions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8 CPU
.
.
.
.
.
.
.
.
.
.
.
.
53
54
54
55
56
59
63
65
66
66
66
66
68
70
71
71
73
73
73
74
77
78
79
80
80
81
81
83
83
83
85
85
86
87
89
91
92
92
92
92
94
94
95
TABLE DES MATIERES
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introdu
tion . . . . . . . . . . . . . . . .
Mi
ro-operations . . . . . . . . . . . . .
Contr^ole du pro
esseur . . . . . . . . . .
Implantation de l'unite de
ommande .
9.4.1 Implantation materielle . . . . .
9.4.2 Implantation mi
ro-programmee
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9 Unite de
ommande
9.1
9.2
9.3
9.4
5
.
.
.
.
.
.
.
.
.
96
96
96
99
99
100
102
102
103
105
106
106
108
109
109
110
TABLE DES MATIERES
Chapitre 1
Preambule
10
CHAPITRE 1. PREAMBULE
Contexte Ce i est un support de ours disponible aux formats html (http://www.blois.univtours.fr/ mar el/ar hi) et posts ript. Il on erne le ours d'ar hie ture des ordinateurs propose aux etudiants de premiere annee de l'IUP GEII option informatique et tele ommuni ations de Blois.
pire
{ du
ours d'ar
hite
ture de Mohamed Taghelit que le present
ours rempla
e,
{ du livre \
omputer organization and ar
hite
ture (fth edition)" de William
Stallings,
{ de do
uments et supports de
ours trouves sur le web, notamment
eux
de Mi
hel Cubero-Castan, Guy Chesnot, M. Billaud, Patri
k Trau et Reto
Zimmermann.
Mer
i a toutes
es personnes pour m'avoir permis l'a
es a leur do
uments.
11
Chapitre 2
Introdu tion
12
CHAPITRE 2. INTRODUCTION
La ma
hine per
ue par l'utilisateur Intera
tions ave
la ma
hine au travers des peripheriques (dispositifs externes a l'unite
entrale) :
{
lavier,
{ souris,
{ e
ran,
{ imprimante,
{ disquette, et
...
Intera
tions = entrees de
ommandes, lan
ements d'appli
ation, visualisation, et
...
La ma
hine invisible a l'utilisateur La boite noire qu'est l'unite
entrale
ontient en fait 3 unites fon
tionnelles :
{ l'automate,
{ la partie
al
ul,
{ la memoire.
2.2 Historique
La motivation prin
ipale est la volonte d'automatiser une suite de t^a
hes
elementaires.
D'abord existent des ma
hines / automates spe
ialises : boite a musique, metiers
a tisser... puis on asso
ie automate et ma
hine a
al
ul. Charles Babbage (19eme
s
ie
le) fut le premier a de
rire les prin
ipes d'un
al
ulateur d'appli
ation
2.2. HISTORIQUE
13
generale (ma
hine pouvant repeter des sequen
es d'operations et
hoisir une
serie d'operations parti
uliere en fon
tion de l'etat du
al
ul). Le modele Von
Neumann (1946) pose les bases des ma
hines universelles (
f. se
tion 2.3).
On observe generalement 5 generations (etapes de
isives) dans l'evolution (prin
ipalement te
hnologique) de
es ma
hines :
1945-1958
{
{
{
{
{
1958-1964
{
{
{
{
1964-1971 ou 75 ou 78
1971/5/8-1978/85
{
{
{
{
14
CHAPITRE 2. INTRODUCTION
apres Le but originel de
ette
inqieme generation etait les ma
hines langages
dediees a l'IA...
2.4 Aper
u
Cet aper
u est une introdu
tion au
omportement des dierentes elements
omposant l'unite
entrale. Il est tres s
hematique et sera developpe dans les
ours
suivants. Il introduit des notions de base
omme le
y
le d'horloge, les
hronogrammes.
15
2.4. APERC
U
COMPUTER
I/O
Memory
System
Bus
CPU
CPU
Registers
Arithmetic
and
Logic Unit
Interconnection
Horloge Utilisee pour syn
hroniser
l'ensemble des dispositifs logiques d'un
ordinateur.
Caden
ement des instru
tions a frequen
e
onstante : l'horloge divise le temps
en battements de m^eme duree appeles
y
les.
Par exemple, une frequen
e d'horloge
d'un mi
ropro
esseur
a 500MHz donne
Control
Unit
des
y
les elementaires de 2 nanose
ondes.
Plus
petit est 1.5
l'espa
eThe
de re
her
he,
plus rapide
est l'a
es a l'information.
Figure
Central
Processing
Unit (CPU)
16
CHAPITRE 2. INTRODUCTION
Bus Ensemble de ls ele
triques sur lesquels transitent les informations entre
les unites.
renvoie un resultat.
Un registre lui est asso
ie : l' a
umulateur (ACC ) pour par exemple memoriser
un resultat intermediaire.
Les operations asso iees (le ture et/ou e riture) sont fon tion du peripherique.
Quels sont les peripheriques ou seule est permise la le
ture? l'e
riture?
les deux?
De maniere simiulaire a la memoire, on dispose d'un registre memorisant l'adresse
du peripherique (le registre de sele
tion du peripherique (RSP )) et d'un registre
d'e
hange de donnees (RE ).
Unite de ommandes Son fon tionnement est elui de rit plus haut.
a exe uter.
Registre d'instru
tion (RI ) memorise l'instru
tion (une instru
tion est
omposee
de plusieurs parties, ou
hamps)
La ma
hine
omplete Une memoire, une ALU, une unite de
ommande, une
unite d'E/S, un bus, et hop !
17
2.4. APERC
U
registre
adresse
0 : lirePriph - clavie
1 : additionner - 163
2 : crirePriph - cr
ALU
registre
mot
registre
instruction
compteur
ordinal
accumulateur
registre de
slection
horloge
registre
dchange
1111111
0000000
0000000
1111111
1111101
00000
cran
clavier
lecteur
18
CHAPITRE 2. INTRODUCTION
mi ro hargeur).
19
Chapitre 3
Pre-requis
CHAPITRE 3. PRE-REQUIS
20
3.2 Codage
3.2.1 Prin
ipe de
odage
1 : : : a1 a0
X
n
=0
ai
b
21
3.2. CODAGE
000
001
010
011
100
101
110
111
Generalement, les bits les plus a gau he sont appeles poids forts.
Code BCD/DCB De imal Code Binaire : haque hire d'un nombre est sur
ode 4 bits
0
1
2
..
.
10
11
0000
0001
0011
..
.
0001 0000
0001 0001
000
001
011
010
110
111
101
100
CHAPITRE 3. PRE-REQUIS
22
odage, des organismes de normalisation ont vu le jour (le plus
elebre etant
l'ISO).
Code ASCII =
ode employe pour les
ara
teres alphanumeriques (a,b,1,?, ,,,).
Code sur 7 bits (+ 1 bit de parite).
{ A est
ode par 1000001,
{ e est
ode par 1100101,
{ 7 est
ode par 0110111,
{ ! est
ode par 0100001,
{ et
...
Uni
ode =
ode re
ent sur 16 bits
ontenant pratiquement tous les alphabets
existants (employe dans java).
L'homme ompte sur ses doigts, l'ordinateur ompte sur ses bits.
an an
an
1 : : : a1 a0 )
b
3.3. SYSTEME
DE NUMERATION
an
b
23
+ an 1 bn 1 + : : : + a1 b + a0
b
1 + a2 b 2 + : : : + a
b
= an bn + an 1 bn 1 + : : : + a1 b + a0
= ((: : : (an b + an 1 ) b + : : : ) b + a1 ) b + a0
est le reste de la division entiere du nombre par la base b. Des divisions
entieres su
essives par la base donnent don
tous les ai .
Cas de la partie fra
tionnaire : sur un prin
ipe similaire, des multipli
ations
su
essives par la base donnent tous les ai .
a0
a 10?
Quelles sont les representations de 100 dans toutes les bases inferieures
110
101
100
CHAPITRE 3. PRE-REQUIS
24
Complement a 2 =
omplement a 1 + 1
-1
-2
-3
111
110
101
3.3. SYSTEME
DE NUMERATION
25
Norme IEEE754
{
{
{
{
nombres
odes sur 32 bits (simple pre
ision), ou 64 bits (double pre
ision)
la mantisse appartient a l'intervalle [1; 0; 10; 0[ (en binaire)
le seul
hire a gau
he de la virgule etant toujours 1, n'est pas represente
l'exposant est
ode ave
un ex
es de 127 (simple pre
ision) ou 1023 (double
pre
ision)
Sur 32 bits : ( 1)S 1; M 2E 127
S
1 bits
exposant E
8 bits
mantisse M
23 bits
Exemple : -5 est ode par 1100 0000 1010 0000 0000 0000 0000 0000
?
!
La norme IEEE 754 est la norme la plus utilisee pour representer les reels.
Pre
ision La representation des nombre reels sur une ma
hine se base sur un
nombre ni de valeurs. C'est don
une representation appro
hee.
Pre
ision de la representation = dieren
e entre les mantisses de deux nombres
reels
onse
utifs.
IEEE 754, simple pre
ision (32 bits) : la pre
ision est de 2 23 .
Les valeurs parti
ulieres representes ave
IEEE 754 :
E
max
max
0
0
M
0
6 0
=
0
6
=
valeur representee
1
NaN
0
nombres denormalises
CHAPITRE 3. PRE-REQUIS
26
a+b=b+a
(a+b)+
=a+(b+
)
a(b+
)=ab+a
a+0=a
a+a=1
ab=ba
(ab)
=a(b
)
a+(b
)=(a+b)(a+
)
a1=a
aa=0
a+a=a
a+ab=a
a + b=a.b
a+1=1
aa=a
a(a+b)=a
ab=a+b
a0=0
1
0
a
0
0
1
1
b
0
1
0
1
a+b
0
1
1
1
a
0
0
1
1
b
0
1
0
1
ab
0
0
0
1
3.4. ALGEBRE
DE BOOLE
27
Ces operations sont mises en uvres par des
ir
uits logiques de base appeles
portes logiques.
La plupart des
ir
uits integres des ordinateurs a
tuels sont
on
us a partir
de portes NON-ET (NAND) et NON-OU (NOR).
b
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
majorite
0
0
0
1
0
1
1
1
ou : majorite(a,b, ) = ab + ab + ab + ab
CHAPITRE 3. PRE-REQUIS
28
Les portes NAND et NOR sont dites ompletes ar on peut realiser n'importe quelle fon tion boleenne ave l'une ou l'autre.
Un a
heur 7 segments est
ompose de 7 diodes notes a, b, : : : , g disposees \en 8". Des nombres sont fournis en binaire sur 4 bits, x1 x2 x3 x4 . Donner l'expression des 7 fon
tions a(x1 x2 x3 x4 ), b(x1 x2 x3 x4 ), et
... qui permettent
d'a
her les nombres fournis.
De
odeur Cir
uit permettant d'envoyer un signal a une sortie
hoisie.
Il dispose de
{ n lignes d'entrees
{ 2n lignes de sortie
La table de verite d'un de
odeur \2 vers 4" (n = 2) est la suivante :
e1
0
0
1
1
e0
0
1
0
1
s0
1
0
0
0
s1
0
1
0
0
s2
0
0
1
0
s3
0
0
0
1
3.6. LES CIRCUITS SEQUENTIELS
29
Multiplexeur Cir
uit permettant de sele
tionner une entree parmi plusieurs.
Il dispose de
{ 2n entrees
{ 1 sortie
{ n lignes de sele
tion
Voi
i la realisation d'un multiplexeur \4 voies" (n = 2) :
Le ir uit ompose d'une porte NON rebou lee sur elle-m^eme est un ir uit
astable.
CHAPITRE 3. PRE-REQUIS
30
Bas
ule RST L'horloge peut ^etre vue
omme la syn
hronisation de l'odre
d'apparition des variables logiques.
Bas ule JK Bas ule RS ave sorties rebou lees sur les entrees : pas d'etat
interdit.
J
0
0
1
1
K
0
1
0
1
Qi
x
x
x
x
Qi+1
x
0
1
3.6. LES CIRCUITS SEQUENTIELS
31
Equations
Symbole
(notation franaise)
Inverseur
Ampli inverseur
Oprateur ET (AND)
Oprateur OU (OR)
CHAPITRE 3. PRE-REQUIS
32
e1 e0
s0
s1
s2
s3
c1 c0 e3 e2 e1 e0
E1
Q1
Q2
E2
S
3.6. LES CIRCUITS SEQUENTIELS
S
T
R
S Q
R Q
S Q
T
R
J
T
S Q
R Q
33
34
CHAPITRE 3. PRE-REQUIS
35
Chapitre 4
Cir uits de al ul
36
4.2 Arithmetique
4.2.1 Arithmetique binaire
Les operations en binaire s'ee
tuent
omme en base 10 :
{ pour l'addition et la soustra
tion, on opere
hire par
hire, des poids
faibes aux poids forts, en propageant la retenue,
{ pour la multipli
ation et la division, on pro
ede par serie d'additions ou
de soustra
tions.
Addition et soustra
tion Ces operations peuvent ^etre de
rites par les tables
de verite suivantes :
a
0
0
1
1
a
0
0
1
1
b
0
1
0
1
b
0
1
0
1
somme
0
1
1
0
dieren
e
0
1
1
0
retenue
0
0
0
1
retenue
0
1
0
0
somme(a,b) = a b
retenue(a,b) = ab
dieren
e(a,b) = a b
retenue(a,b) = ab
4.2. ARITHMETIQUE
37
dition sans debordement (on ne
onsidere que les n bits resultats d'une operation
sur deux nombres sur n bits). Detaillons les 4
as (selon les signes des operandes) :
5
9
14
00101
01001
01110
-5
-9
-14
11011
10111
10010
-5
9
4
11011
01001
00100
= (2n
= 2n+1
= 2n+1
5
-9
-4
Y
00101
10111
11100
deux entiers negatifs.
j X j. Don
j X j) + (2 j Y j)
(j X j + j Y j)
jZj
n
sur n bits
sur n+1 bits
13
9
-10
22
01101
01001
10110
010110
-13
-9
10
-22
10011
10111
01010
101010
38
Multipli ation et division La multipli ation est tres simple : elle ne onsiste
qu'en des additions su
essives du multipli
ande ave
lui m^eme de
ale. Le resultat
d'une multipli
ation ave
des operandes de n bits est
ode sur 2n bits.
Ces operations fon
tionnent aussi ave
des nombres
odes en notations
omplementees.
Exemple :
11
13
143
01011 -5
01101 -3
010001111 15
1...11011 11
1...11101 -3
000001111 -33
01011
1...11101
111011111
La division
onsiste en des soustra
tion su
essives. Par exemple : 1510 =310 =
1111=11 = 101
Arrondi La multipli ation des deux mantisses sur p bits donne un resultat sur
2p bits, duquel on doit
onserver une mantisse de p bits. Il faut don
arrondir
et eventuellement ajuster l'exposant pour normaliser le resultat.
Pour arrondir, on s'appuie sur :
{ le bit de garde : p + 1ieme bit
{ le bit d'arrondi : p + 2ieme bit
{ le bit persistant : un ou logique des bits elimines
Les p bits gardes sont fon
tion du bit de poids fort du resultat :
{ si le bit de poids fort est 0, le resultat obtenu est de la forme 01,... On
doit
onserver le bit de garde dans le resultat.
{ si le bit de poids fort est 1, le resultat est de la forme 10,... On ajuste
l'exposant, le bit de garde devient le bit d'arrondi, et l'an
ien bit d'arrondi
entre dans le
al
ul du bit persistant.
4.2. ARITHMETIQUE
39
resultat negatif
resultat + (r ^p0 ) _ (r ^ s)
resultat + (r _ s)
in
hange
in
hange
L'arrondi au plus pres, qui est l'appro
he par defaut,
onsiste a arrondir a la
plus pro
he valeur representable.
omplique,
ar il faut non seulement tenir
ompte des signes, mais aussi aligner
les virgules.
2 2 + 1; 111 20 , puis 1; 25
2 .
Pour diviser deux mantisses sur p bits, on
al
ul le resultat sur p bits, plus deux
bits supplementaires : le bit de garde et le bit d'arrondi. Le reste donne la valeur
du bit persistant.
s1 =s2
e1
e2
40
0
0
1
0
0
1
1
-
0
0
0
0
1
0
0
0
1
1
-
1,
0,
0
0
0
1
0
0
0
1
1
p
0
0
0
p
1
1
0
0
0
1
0
g
1
a
0
0
0
p
4.3.1 Addition
La
on
eption d'un additionneur n bits (appele full adder ou additionneur
omplet) demande de prendre en
ompte systematiquement la retenue (
arry) entrant dans un etage d'addition et de generer un bit de resultat et un bit de
retenue. Ainsi la table de verite de l'addition devient :
rin
0
0
0
0
1
1
1
1
a
0
0
1
1
0
0
1
1
b
0
1
0
1
0
1
0
1
somme
0
1
1
0
1
0
0
1
rout
0
0
0
1
0
1
1
1
4.3. CIRCUITS ARITHMETIQUES
41
Faire la synthese logique d'un additionneur
omplet sur 1 bit le plus rapide
possible en utilisant des portes NOT, AND, OR, NAND, NOR. Determiner
le temps maximum pour ee
tuer une addition en supposant que le temps de
42
et le temps de traversee
L'in
onvenient majeur de
e
ir
uit est le temps ne
essaire a la propagation de la retenue, qui est proportionnel au nombre d'etage. La
omplexite en
temps d'un additionneur n bits est don
en O(n).
Ainsi
{ gi = (ai ^ bi ) est appele generateur de retenue et
{ pi = (ai _ bi ) est appele propagateur de retenue.
Don
ri+1 = gi _ (pi ^ ri )
e qui, si on developpe les ri , donne :
ri+1
En developpant en
ore :
ri+1
= gi
_
_
_
_
_
(pi ^ gi 1 )
(pi ^ pi 1 ^ gi 2 )
:::
(pi ^ pi 1 ^ : : : ^ p1 ^ g0 )
(pi ^ pi 1 ^ : : : ^ p1 ^ p0 ^ r0 )
4.3. CIRCUITS ARITHMETIQUES
43
d'implanter l'additionneur obtenu est de realiser un
ir
uit
al
ulant la propagation et la generation de retenue pour un etage en fon
tion de la propagation
et la generation des etages pre
edents.
Il y a propagation a l'etage j si dans les etages i a j il y a toujours eu propagation :
Pj;i
= pj ^ pj 1 : : : pi+1 ^ pi
Il y a generation a l'etage j si
'est l'etage j lui m^eme qui genere, ou si les etages
d'avant ont tous genere et propage :
Gj;i
= gj _ pj ^ gj 1 _ pj ^ pj 1 ^ gj 2 _ : : : _ pj ^ pj 1 : : : pi+1 ^ gi
i; i < j :
rj +1
= Gj;i _ Pj;i ^ ri
Utilisons un
ir
uit pouvant generer les signaux P1;0 ; G1;0 et les retenues r1 ; r2
en fon
tion des
ouples (p0 ; g0 ), (p1 ; g1 ) et de la retenue entrante r0 .
Pour un tel
ir
uit :
G1;0
= g1 _ p1 ^ g0
P1;0
r1
= p1 ^ p0
= g0 _ p0 ^ r0
44
Additionneur a sele
tion de retenue (
arry sele
t adder) Un tel additionneur est realise ave
deux additionneurs fon
tionnant en parallele, l'un ave
une retenue entrante a 0, l'autre ave
une retenue entrante a 1. Des re
eption de
la retenue entrante ee
tive, une simple sele
tion permet d'obtenir le resultat.
4.3. CIRCUITS ARITHMETIQUES
45
Multipli ation sequentielle Supposons que notre ALU ontienne des re-
46
(b) de
alage des registres P et A vers la droite : le bit de poids fort de
P re
oit la retenue sortante, le bit de poids faible de P est transfere
dans le bit de poids fort de A. L'an
ien bit de poids faible de A est
perdu.
Le resultat se trouve dans P (les bits de poids fort) et dans A (les bits de poids
fables).
d'asso
ier un me
anisme de propagation de retenue au me
anisme de de
alage du
registre P . Ainsi la retenue n'est plus propagee sur
haque etage d'une addition,
mais est
onservee pour l'addition suivante.
4.3. CIRCUITS ARITHMETIQUES
47
?
!
Une multipli
ation a base plus elevee (sous entendu que 2)
onsidere plusieurs
bits simultanement (au lieu de 1 habituellement). Ainsi, un multiplieur a base
2k
onsidere k bits simultanement.
48
X2
n=
=0
2a2i+1 )22i
(a2i 1 + a2i
1 20 )
Une multipli ation par la base = un de alage vers la gau he.
L'operation a faire sur le resultat intermediaire est donnee par la table suivante
(en fon
tion des bits du multipli
ande A) :
a2i+1 a2i a2i 1 r
esultat intermediaire
0
0
0
0
0
0
1
+B
0
1
0
+B
0
1
1
+2B
1
0
0
-2B
1
0
1
-B
1
1
0
-B
1
1
1
0
Exemple : la multipli
ation de 7 (A = 00111) par 3 (B = 00011) se fait
omme
suit :
0 0 1 1 1
0 0 0 1 1
- 0 0 0 1 1
(-B)
+ 0 0 0 1 1
(+2B)
0 0 0 0 0 1 0 1 0 1
p7
x3 y3
p6
x3 y2
x2 y3
p5
x3 y1
x2 y2
x1 y3
p4
x3
y3
x3 y0
x2 y1
x1 y2
x0 y3
p3
x2
y2
x2 y0
x1 y1
x0 y2
x1
y1
x1 y0
x0 y1
x0
y0
x0 y0
p2
p1
p0
4.3. CIRCUITS ARITHMETIQUES
49
Chaque element xi yj :
{ multiplie xi par yj (xi ^ yj )
{ additionne la somme partielle provenant de l'element xi+1 yj 1
{ tient
ompte de la retenue provenant de l'element xi 1 yj
{ envoie la retenue a l'element xi+1 yj
{ envoie la somme a l'element xi yj +1
Le
ir
uit utilise est le suivant, ou (r; S ) = X Y + K + M (S est la somme, et
r est la retenue sortante).
4.3.3 Division
L'amelioration des diviseurs porte sur la redu
tion du nombre d'operations (addition, soustra
tion) intermediaires ne
essite par l'operation de division.
Dans tous les diviseurs presentes
i-dessous, les operandes sont 2 nombres non
signes de n bits,
ontenus dans deux registres : le registre A
ontient le dividende,
et le registre B
ontient le diviseur. On utilise un registre supplementaire P. En
n de division, le registre A
ontient le quotient et le registre P
ontient le reste.
p <
1. P 0
2. faire n fois
(a) de
alage des registres P, A d'un bit vers la gau
he : le bit de poids
fort de A est inje
te dans le bit de poids faible de P
50
(b) P
(
) si P
0 alors
le bit de poids faible de A est mis a 0,
P
P + B (
etape de restauration)
sinon
le bit de poids faible de A est mis a 1
<
Division sans restauration L'etape de restauration peut ^etre evitee en
hangeant la phase iterative par :
1. si P
0
de
alage des registres P, A d'un bit vers la gau
he : le bit de poids
fort de A est inje
te dans le bit de poids faible de P
P
P +B
sinon
de
alage des registres P, A d'un bit vers la gau
he : le bit de poids
fort de A est inje
te dans le bit de poids faible de P
<
4.3. CIRCUITS ARITHMETIQUES
2. si P
51
0
le bit de poids faible de A est mis a 0
sinon
le bit de poids faible de A est mis a 1
<
<
0 en n de division.
52
sinon
si P < 0
{ de
aler P,A d'une position vers la gau
he : le bit de poids fort
de A est inje
te dans le bit de poids faible de P
{ qi 1
{ P P +B
sinon
{ de
aler P,A d'une position vers la gau
he : le bit de poids fort
de A est inje
te dans le bit de poids faible de P
{ qi 1
{ P P B
3. si P < 0 (le reste nal est negatif)
P
P +B
A
A 1
4. de
aler le reste de k-1 positions vers la droite
53
Chapitre 5
Memoire
CHAPITRE 5. MEMOIRE
54
Les dierents types physiques de memoires Les dierents supports utilises sont prin
ipalement
{ semi-
ondu
teur (e.g., registre)
{ magnetique (e.g., disquette)
{ optique (e.g.,
d-rom)
Duree de memorisation Elle peut ^etre fon
tion du temps (de quasi-permanente,
e.g., disque, ROM a temporaire, ex. memoire dynamique), ou fon
tion de la
presen
e d'alimentation ele
trique (volatilite : e.g., RAM).
5.3. MODE D'ACCES
55
{ le temps d'a
es : le temps ne
essaire a une operation de le
ture/e
riture
i.e., le temps qui separe l'instant ou l'operation est demandee (exemple :
l'adresse est presentee a la memoire pour une operation de le
ture) du
l'instant ou l'operation est terminee (l'information est disponible),
{ le debit : la quantite d'informations lues/e
rites par unites de temps (exemple :
Mo/s).
Mode d'a
es Il s'agit de la maniere de retrouver une information, d'a
eder
a un mot memoire (
f se
tion 5.3).
Hierar
hie L'ideal est de posseder une memoire illimitee et tres rapide. Or
le temps d'a
es augmente ave
la
apa
ite. L'idee adoptee pour l'organisation
de la memoire est don
de
onsiderer que seules les donnees les plus utilisees
ne
essitent un temps d'a
es tres petit.
Ainsi la memoire est organisee en une hierar
hie :
{ du plus au moins rapide,
'est a dire
{ de la
apa
ite la plus faible a la
apa
ite la plus grande,
'est a dire
{ du
omposant le plus
outeux au
omposant le moins
outeux !
A es aleatoire Il s'agit du mode d'a es le plus employe. Il est utilise par
A
es par le
ontenu Ce mode d'a
es
ara
terise les memoires appelees
memoires asso
iatives.
Il est employe prin
ipalement par les memoire
a
hes.
56
CHAPITRE 5. MEMOIRE
Le prin
ipe est similaire a la memoire a a
es aleatoire sans notion d'adresse :
un mot est retrouve par une partie de son
ontenu.
En general, une memoire asso
iative est divisee en 2 parties :
1. une partie
ontenant un des
ripteur (
le) et permettant une
omparaison
en parallele de
e des
ripteur ave
un autre des
ripteur, et
2. une deuxieme partie fournissant le mot asso
ie au des
ripteur.
Les operations asso
iees a
e mode d'a
es :
{ e
riture(
le,donnee)
{ le
ture(
le)
{ existe(
le)
{ retirer(
le)
Le temps d'a
es est
onstant.
Chaque blo
de donnees a une adresse unique. Une donnee est a
edee en
a
edant le blo
qui la
ontient, puis en se depla
ant dans le blo
jusqu'a sa
position.
Les operations asso
iees a
e mode d'a
es :
{ le
ture(blo
,depla
ement)
{ e
riture(blo
,depla
ement,donnee)
Le temps d'a
es est variable.
L'a es a la memoire prin ipale est le hemin le plus important dans l'ordinateur.
5.4. MEMOIRE
PRINCIPALE
57
Types Les memoires omposant la memoire prin ipale sont des memoires a
base de semi-
ondu
teurs, employant un mode d'a
es aleatoire. Elles sont de
deux types : volatiles ou non.
Le terme RAM
orrespond aux memoires volatiles. Elles sto
kent des donnees
temporaires. A
tuellement on en trouve prin
ipalement 2 types :
{ RAM dynamique (DRAM) : des
ondensateurs sont utilises
omme unites
de memorisation. Elles ne
essitent un rafrai
hissement periodique. Elles
sont simples, denses, peu
outeuses.
{ RAM statique : des bas
ules sont utilisees
omme unites de memorisation.
Elles sont plus rapides, et ne ne
essitent pas de rafai
hissement.
Organisation L'element de base d'une memoire semi-
ondu
teur est appele
ellule. Une
ellule possede 3
onnexions :
{ une entree de sele
tion indiquant si la
ellule est
on
ernee par l'operation
ourante
{ une entree de
ontr^ole indiquant l'operation
ourante est une le
ture (Output Enable) ou une e
riture (Write Enable)
{ une ligne bidire
tionnelle pour les donnees.
A partir de
et element de base, realisons un
ir
uit memoire RAM de M mots
de B bits
ha
un. On peut organiser
ette memoire en une matri
e de M lignes et
B
olonnes. Ainsi, outre les entrees de sele
tion, le
ture et e
riture (toutes sur 1
bit), on doit disposer de log2 (M ) lignes d'adresse (par exemple, 10 = log2 (1024))
et de B lignes de donnees.
Supposons maintenant qu'a partir de
ir
uits RAM de 1024 8 bits et de
ir
uits
ROM de 4096 8 bits, on
her
he a realiser un espa
e adressable de 216 mots
de 32 bits, et disposer de 4096 mots memoires en RAM et 4096 mots memoire
en ROM. Pour obtenir un mot, il faut en parallele 4
ir
uits de 8 bits.
On denit une
arte d'adresse memoire,
'est a dire l'o
upation ee
tive de
l'espa
e adressable :
{ les 4096 mots memoires RAM
orrespondront aux adresses les plus basses
(de 0 a 4096),
CHAPITRE 5. MEMOIRE
58
{ les 4096 mots de memoires ROM
orrespondront aux adresses les plus
elevees (de 61440 a 65535),
{ les autres adresses resteront ino
upees.
etage
RAM 0
RAM 1
RAM 2
RAM 3
ino
upe
ROM 4
bits d'adresse
0000 00xx xxxx xxxx
0000 01xx xxxx xxxx
0000 10xx xxxx xxxx
0000 11xx xxxx xxxx
1111 xxxx xxxx xxxx
stru
ture interne, les
ir
uits de memoire dynamique multiplexent le bus adresse :
l'adresse de n bits d'un mot est envoye en 2 fois n=2 bis. Deux signaux indiquent
si la demi adresse
ourante est en fait les bits de poids faible ou de poits fort de
5.5. MEMOIRE
CACHE
59
l'adresse. Ces signaux sont nommes RAS (Row Adress Sele
t) et CAS (Column
Adress Sele
t).
Ainsi pour realiser une memoire de 16 M mots de 1 bit a partir de
ir
uits de 4
M mots de 1 bit, on assemble 4
ir
uits dieren
ies par le signal CAS.
Ce type de memoire ne
essite un
ompteur memorisant le numero de ligne devant subir un
y
le de rafrai
hissement (refresh
ounter).
Un
ontr^oleur de memoire dynamique est un
ir
uit integre qui regroupe :
{ la partie
ompteur
{ la partie multiplexage d'adresses
{ la partie generation des signaux CAS et RAS
{ d'autres fon
tionalites (
ontr^ole d'a
es au bus de donnees,
f plus tard...)
5.5 Memoire a he
60
CHAPITRE 5. MEMOIRE
Le
a
he memoire est un niveau de memorisation intermediaire tres rapide (plusieurs dizaines de fois que la memoire prin
ipale) et de petite
apa
ite destine
a memoriser les donnees ou instru
tions les plus re
emment a
edees.
Un
a
he est typiquement situe entre le pro
esseur et la memoire, mais peut
aussi ^etre situe entre le pro
esseur et un autre
a
he, et
...
Prin ipe Re her he d'une donnee dans le a he avant de la re her her dans
5.5. MEMOIRE
CACHE
61
elui d'une memoire prin
ipale, et que le temps d'a
es soit le plus interessant
possible, et susament grand pour ne pas avoir a trop a
eder a la memoire
prin
ipale. Des etudes ont montre que les
a
hes les plus e
a
es on une taille
inferieure a 512 K mots, mais leur performan
e dependent beau
oup de la nature
des appli
ations traitees par la ma
hine...
la memoire. Il faut denir une strategie de
opie des blo
s de donnees dans le
a
he. 3 strategies sont possibles :
{
orrespondan
e dire
te :
haque blo
memoire ne peut ^etre pla
e que dans
un seul blo
du
a
he,
{
orrespondan
e totalement asso
iative :
haque blo
memoire peut ^etre
pla
e dans n'importe quel blo
du
a
he
62
CHAPITRE 5. MEMOIRE
{
orrespondan
e asso
iative par ensemble :
haque blo
memoire peut ^etre
pla
e dans n'importe quel blo
du
a
he parmi un ensemble de n blo
s.
Aujourd'hui la grande majorite des
a
hes sont a
orrespondan
e dire
te ou a
orrespondan
e asso
iative par ensemble de 2 ou 4 blo
.
en fon
tion de la
orrespondan
e entre memoire prin
ipale et
a
he. Dans
e
as,
l'adresse memoire d'un mot
ontient des informations sur sa presen
e dans un
blo
et sa presen
e eventuelle dans le
a
he. Elle se de
ompose en deux partie :
{ un numero de blo
, qui se de
ompose en
{ un index,
orrespondant a l'empla
ement de
e blo
dans le
a
he
{ une etiquette permetant d'identier le blo
memoire
orrespondant
au blo
pla
e dans le
a
he
{ un depla
ement dans le blo
(le numero du mot dans la blo
).
Ainsi, une table d'etiquette est maintenue, qui donne pour
haque blo
du
a
he
l'etiquette du blo
memoire pla
e dans
e blo
, ou le fait qu'au
un blo
memoire
n'a ete
opie dans
e blo
.
situations se presentent selon que le blo
dans lequel on souhaite e
rire se trouve
dans le
a
he ou non.
Dans le premier
as, on peut
hoisir
{ d'e
rire a la fois dans le blo
du
a
he et dans le blo
de la memoire
(e
riture simultanee, ou write through)
{ d'e
rire uniquement dans le blo
du
a
he, et dierer l'e
riture de
e blo
en memoire lorsque l'empla
ement qu'il o
upe sera designe pour re
evoir
un nouveau blo
memoire (ree
riture ou write ba
k).
63
CHAPITRE 5. MEMOIRE
64
d'a
es \en rafale" (burst mode) pour lequel seule l'adresse de debut d'une
sequen
e de mots (a lire/e
rire) est donnee (
e qui elimine le de
odage des
adresses suivantes).
a
he
0
1
a
he interne 8Ko
1
a
he interne donnee 8 Ko et 1
a
he interne instru
tions 8 Ko
1
a
he interne donnee 16 Ko et 1
a
he interne instru
tions 16 Ko
1
a
he externe 256 Ko
ommun au 2
a
hes internes
1
a
he interne donnee 16 Ko et 1
a
he interne instru
tions 16 Ko
1
a
he externe 256 Ko
ommun au 2
a
hes internes
par
omparaison :
pro
esseur
INTEL
eleron 2
AMD athlon
a
he
1
a
he interne donnee 16 Ko et 1
a
he interne instru
tions 16 Ko
1
a
he externe 128 Ko
1
a
he interne 128 Ko
1
a
he externe 256 Ko
Les
a
hes internes du pentium 2 sont a
orrespondan
e asso
iative par ensemble. Le
a
he interne donnee utilise un algorithme LRU pour le rempla
ement et une politique d'e
riture write ba
k. Il peut ^etre
ongure pour adopter
une politique write-through.
65
Chapitre 6
Inter onnexions
66
CHAPITRE 6. INTERCONNEXIONS
6.3 Bus
6.3.1 Denition et stru
ture
Denition : un bus est un
hemin partage entre plusieurs unites (ou modules).
6.3. BUS
67
est grand, plus les performan
es de la ma
hine de
roissent (le bus devient un
goulot d'etranglement). De plus la longueur physique du bus joue sur la vitesse de transfert de l'information : approximativement la vitesse de signal dans
un
ondu
teur
orrespond a la moitie de la vitesse de la lumiere dans le vide
(exemple pour une horloge a 200 Mhz, pour un
y
le de 5ns, le signal n'a par
ouru que 75
m).
Les stru
tures d'inter
onnexions les plus
ommunes sont basees sur l'utilisation
d'une d'une hierar
hie de bus.
Les gures suivantes en donne quelques exemples.
68
CHAPITRE 6. INTERCONNEXIONS
6.3. BUS
69
tres large permettra l'envoi simultane de donnees et adresses. Un bus peu large
demandera un multiplexage des donees et adresses.
La largeur du bus de donnees est determinante pour les performan
es du systeme :
si le bus a une largeur de 8 bits et que les instru
tions sont
odees sur 16 bits,
le pro
esseur doit faire deux a
es memoire pendant un
y
le instru
tion. A
tuellement, la largeur d'un bus de donnees est de 8, 16 ou 32 bits.
La largeur du bus d'adresses determine la taille de la
apa
ite memorielle de
l'ordinateur. Typiquement, les bits de poids fort sont utilisees pour sele
tionner
soit un module d'E/S, soit la memoire, et les bits de poids faible servent a
sele
tionner un port ou un empla
ement memoire.
donnees :
1. e
riture multiplexee : l'adresse est pla
ee sur le bus en premier, ensuite les
donnees,
2. le
ture multiplexee : l'adresse est pla
ee sur le bus en premier, ensuite,
apres un temps d'a
es aux donnees, les donnees,
3. le
ture/e
riture non multiplexee : l'adresse et les donnees sont pla
ees sur
le bus en m^eme temps,
4. le
ture-modi
ation-e
riture : une donnee est lue a une adresse et est
immediatement modiee (i.e., par une e
riture a
ette adresse),
5. transfert de blo
de donnees : une adresse est pla
ee sur le bus, ensuite les
donnees a e
rire/lire a l'adresse pla
ee et aux adresses
onse
utives.
70
CHAPITRE 6. INTERCONNEXIONS
Dans une
ommuni
ation syn
hrone, le signal d'horloge est transmis sur les
lignes de
ontr^ole. Un proto
ole est xe en fon
tion de
e signal pour emettre
adresses et donnees. Cela permet une
ommuni
ation rapide au prix de peu
de logique de
ontr^ole. Neanmoins
ela impose a l'emetteur et au re
epteur de
fon
tionner a la m^eme frequen
e d'horloge.
Dans une
ommuni
ation asyn
hrone, l'absen
e de referen
e a une horloge ne
essite
des e
hanges de signaux pour indiquer la progression de la
ommuni
ation.
La
ommuni
ation est moins rapide, et est realisee ave
une logique plus importante. L'avantage est de permettre la
ommunni
ation entre
omposants
heterogenes (par exemple possedant une frequen
e d'horloge dierente).
Te
hnique d'arbitrage Un module sera appele ma^tre s'il lui est permi de
demarrer une transa
tion sur le bus (exemple : l'UC, un module d'E/S).
Un
omposant non ma^tre sera dit es
lave. Lorsqu'il existe plusieurs ma^tres de
bus potentiels, un me
anisme d'arbitrage est ne
essaire pour designer qui sera
le pro
hain ma^tre (
f se
tion 6.5).
Une transa
tion faisant intervenir plusieurs es
laves (par exemple adresse a tous
les
a
hes pour les rendre
oherents) est appelee diusion (broad
ast).
Performan es La performan e d'un bus est denie par les riteres suivants :
6.4. SYNCHRONISATION DES ECHANGES
71
{ une maniere asyn
hrone lorsque les evenements peuvent avoir lieu a des
moements arbitraires
{ une maniere semi-asyn
hrone lorsque les evenements peuvent avoir lieu de
maniere asyn
hrone lors des dierentes phases d'une horloge.
Ce type de syn hronisation doit ^etre adapte au re epteur le plus lent.
72
CHAPITRE 6. INTERCONNEXIONS
Dans la
as d'un proto
ole asyn
hrone
ompletement entrela
ee (aussi appele
handshake, poignee de main), l'en
hainement des evenements est le suivant :
1. l'emetteur pla
e les donnees sur le bus
2. l'emetteur leve le signal DR
73
dats potentiels a tour de r^ole, dans un ordre xe. L'in
onvenient est que si un
ma^tre ne souhaite pas faire de transa
tion a un moment donne, il reste ma^tre
et le bus est inutilise (non-operation). L'avantage est la simpli
ite de mise en
oeuvre. Ce type d'arbitrage est utilise ave
un proto
ole syn
hrone lorsqu'il y a
peu de ma^tres potentiels.
74
CHAPITRE 6. INTERCONNEXIONS
Lorsqu'il y a plusieurs demandes simultanees, un
hoix doit ^etre fait qui peut
^etre :
{ suivant une priorite ae
tee de maniere unique a
haque ma^tre potentiel
(les bus d'E/S utilisent souvent
e type d'arbitrage)
{ de maniere equitable (pour eviter qu'un ma^tre potentiel de petite priorite
voit ses demandes
onstamment rejetees)
{ en
ombinant les deux premieres politiques : un
hoix equitable departage
deux demandes de m^eme priorite.
Le bus n'est attribue que lorsqu'il est libre. La liberation du bus peut avoir lieu
de plusieurs manieres:
{ en n de transa
tion,
{ sur demande : le ma^tre
onserve le bus jusqu'a une nouvelle demande.
Cette politique est utilisee lorsque un ma^tre (exemple le pro
esseur) est
elui qui demande le plus souvent (exemple, par rapport a un module
d'E/S),
{ par preemption : un module prioritaire peut devenir ma^tre avant la n
d'une transa
tion moins prioritaire.
Daisy
hain La stru
ture en guirlande (daisy
hain) fon
tionne de la maniere
suivante :
75
Les avantages sont l'absen
e de delai de reponse, de sensibilite aux pannes d'un
module, et le
ara
tere non statique de la priorite. L'in
onvenient est la multipli
ation des lignes de
ontr^ole.
Arbitrage mixte Cette te
hnique est une
ombinaison des deux te
hniques
pre
edentes.
Chaque serie de modules possedant des lignes BG et BR est organisee en guirlande. Dierentes strategies d'arbitrage peuvent ^etre implantees pour designer
le sous ensemble dont un element sera ma^tre du bus (
f plus bas). Pour une
serie de module, la priorite est xe par la guirlande.
76
CHAPITRE 6. INTERCONNEXIONS
77
Strategie
ir
ulaire La priorite
ir
ule sur les demandeurs : les numero sont
pla
es dans une liste
ir
ulaire, et
'est le demandeur dont le numero est pla
e
a droite du numero du dernier ma^tre du bus qui devient ma^tre a son tour.
Exemple : 4 R 3 R 1 R 2 signie que le module le plus prioritaire est le module
4 si le module 2 etait ma^tre du bus lors de la derniere transa
tion.
Cette strategie est plus di
ile a realiser que la pre
edente (il faut
onnaitre le
dernier ma^tre) mais evite la situation de famine.
Strategie
y
lique Pour
haque demandeur, on garde l'anteriorite des demandes pre
edentes. L'arbitre applique une strategie lineaire sur les modules
lasses par ordre d'anteriorite de
roissante (le module le plus an
iennement servi
sera le plus prioritaire).
Exemple : 1 C 2 C 3 C 4, singnie que si a un moment donne, le plus an
iennement servi est l'element numero 4, puis l'element numero 1, puis l'element
numero 3 et enn l'element numero 2, l'element le plus prioritaire sera le 4. Si,
seul le numero 3 demande le bus, il l'obtiendra, mais la priorite sera alors par
ordre de
roissant: 4, 1, 2 et 3.
Strategie multiple Il s'agit simplement de melanger plusieurs strategies de
rites
i-dessus.
Exemple : 1 R (3 C 4) R (5 L 6) signie que 5 sera le plus prioritaire si 3 ou 4
ont ete servis en dernier.
78
CHAPITRE 6. INTERCONNEXIONS
32 ou 64 bits
66 Mhz
528 Mo/s
multiplexage adresses et donnees
en rafale
semi-syn
hrone
entralise
syn
hrone
requ^ete-autorisation
a
he
Transa tion Le bus PCI omprend des lignes de ontr^ole pour detailler type
d'operation (le
ture/e
riture) et destinataire (memoire, E/S). Une transa
tion
onsiste en une phase d'emission d'une adresse, suivie de une ou plusieurs phase
d'emission de donnees. Lors d'une transa
tion, tous les evenements sont syn
hronises sur des fronts des
endants d'horloge.
pour
haque module. La strategie n'est pas xee par la spe
i
ation du bus,
et l'arbitre
omprend plusieurs types de strategies (FIFO,
ir
ulaire, xation
de priorite). L'arbitrage est
a
he,
'est a dire qu'il est ee
tue pendant une
transa
tion.
79
Chapitre 7
80
Con evoir une CPU 'est en grande partie on evoir le jeu d'instru tions.
Ce
ours
ommen
e par des denitions (et un rappel du
hapitre 1) portant sur
les instru
tions et leurs in
uen
e sur la CPU. Puis il est divisee en 2 grandes
parties : la premiere partie repond a la question \que fait une instru
tion ?"
et la se
onde a la question \
omment spe
ier operation et operandes d'une
instru
tion?"
Le pentium II sera pris en exemple.
7.3. CARACTERISTIQUES
81
Cette sequen
e de bit admet une representation symbolique, ou l'op
ode est
represente par une abbreviation appelee mnemonique. Chaque op
ode admet
une representation binaire xe. Par exemple ADD R; Y signie ajouter la valeur
ontenue a l'adresse Y au
ontenu du registre R.
Il est don
possible de programmer en employant un tel langage, appele langage
ma
hine. Aujourd'hui, la programmation ne se fait plus qu'ave
des langages
de haut niveau (ou au pire ave
des langage d'assemblage, qui sont une legere
abstra
tion des langages ma
hine). Les langages ma
hines reste
ependant un
bon moyen de de
rire les jeux d'instru
tion.
Le jeu d'instru
tion doit ^etre susament expressif pour
oder toute instru
tion d'un langage de haut niveau. Ainsi, une instru
tion d'un langage de
haut niveau
orrespond en fait a plusieurs instru
tions du langage ma
hine.
= X + Y . Comment est
Con
eption du jeu d'instru
tion Il n'y a pas de
onsen
us sur la
on
eption
d'un jeu d'ins
tru
tions. Les aspe
t fondamentaux a prendre en
ompte sont :
{ les operations :
ombien en faut il, quelle doit ^etre leur
omplexite ?
{ les types de donnees : quels sont les types de donnees supportes par les
operations?
{ les registres :
ombien en faut il et
omment sont ils utilises?
{ l'adressage : quelles sont les dierentes fa
ons de faire referen
e aux donnees?
{ le format : quelle(s) longueur(s) d'instru
tion adopter, quelle sera le nombre
et la taille de
hamps?
Ces aspe
ts sont grandement relies les uns aux autres, et doivent ^etre
onsideres
ensemble. Ils sont detailles dans la suite.
82
Format d'instru tion Une operation fait referen e a des donnees sour es et
peut faire referen
e a une destination. Ces referen
es sont en fait les adresses
des donnees. Le format d'une instru
tion
orrespond au nombre de
hamps
de l'instru
tion reserve a
es adresses. En theorie, il en faudrait 4 (pour deux
operandes, un resultat, la pro
haine instru
tion). En pratique :
{ les formats d'instru
tion a trois adresses ils sont peu
ourants,
ar donne
lieu a des instru
tions longues ;
{ les formats d'instru
tion a deux adresses ne
essitent que l'une des adresses
fasse o
e de sour
e et de destination (
e qui doit ^etre gere si la donnee
sour
e doit rester disponible) ;
{ les instru
tions employant base sur un format a une seule adresse emploient systematiquement un registre CPU, l'a
umulateur, pour garder
une operande et le resultat ;
{ Les instru
tions n'employant au
une adresse utilisent systematiquement
une pile, ou sta
k (i.e., une stru
ture de liste geree de maniere LIFO) pour
sto
ker operandes et resultats.
7.3. CARACTERISTIQUES
83
84
sequen
e de bits arbitraire. Plus pre
isement, le pentium II supporte des types
de donnees spe
iques (manipules par des operations parti
ulieres) :
{ general :
ontenu arbitraire sur 8, 16, 32 ou 64 bits ;
{ entier : binaire signe en
omplement a 2 sur 8, 16 ou 32 bits ;
{ ordinal : entier non signe sur 8, 16 ou 32 bits ;
{ BDC : entier entre 0 et 9 sur 8 bits ;
{ pa
ked b
d : 2
hires BDC (de 0 a 99) sur un o
tet ;
{ pointeur : une adresse sur 32 bits ;
{
hamps binaire : sequen
e de bits
onsideres
ha
un de maniere ndependante
(bornee a 232 bits);
{
ha^ne d'o
tet : sequen
e d'o
tets, mots ou doubles mots (bornee a 232
o
tets) ;
{
ottants :
orrespond a un ensemble de types utilises par l'unite arithmetique
en virgule
ottante, manipulees par des operations dediees. Ces types sont :
{ entier mot : binaire en
omplement a 2 sur 16 bits ;
{ entier
ourt : binaire en
omplement a 2 sur 32 bits ;
{ entier long : binaire en
omplement a 2 sur 64 bits ;
{ pa
ked BCD : 1 bit de signe, 18 o
tet BDC ;
{ simple pre
ision, double pre
ision et pre
ision etendue (sur 80 bits,
64 bits de mantisse et 15 bits d'exposant) : standard IEEE 754.
in
luant de nombreuses operations spe
ialisees. L'idee etait d'optimiser la tradu
tion de
ode de haut niveau en langage ma
hine. Ainsi, on trouve les
ategories
d'instru
tions
ommunes a la majorite des ma
hines, et d'autres
ategories parti
ulieres au pentium II :
{ les operations de transfert de
ontr^ole donnent lieu a un type d'operations
supportant des operations de langage de haut niveau ;
{ un ensemble d'instru
tion est dedie a la gestion de la memoire et du
a
he
interne (
es instru
tions sont exe
utees seulement a partir de l'OS) ;
{ des instru
tions de bran
hement sont denies pour fon
tionner
onjointement au test de registres de
ondition (registres
ontenant des informations
sur des operations arithmetique ou de
omparaison).
En 1996, Intel a introduit un ensemble de 57 nouvelles instru
tions dediees
aux operations multimedia, appele MMX. Ces instru
tions permettent d'ee
tuer une m^eme operation sur plusieurs elements a la fois (prin
ipe SIMD). Les
donnees video et audio sont
omposees de large tableaux de petits types de
donnees (8 ou 16 bits, parfois 32) alors que les instru
tions
onventionnelles
sont
alibrees pour des types de donnees plus grands (32 ou 64 bits). Ainsi,
trois nouveaux types de donnees ont ete introduits en MMX,
ha
un de 64 bits
de
oupes en
hamps
ontenant
ha
un un entier :
{ pa
ked bytes : 8 o
tets ;
{ pa
ked word : 4 mots ;
85
7.4.1 L'adressage
L'instru
tion fait referen
e a des donnees. Or la taille d'un
hamp adresse dans
une instru
tion est petite, alors qu'il faut pouvoir adresser un espa
e memoire
important. Ainsi une variete de te
hnique d'adressage,
'est a dire de manieres
d'obtenir une adresse ee
tive, ont ete proposees.
86
un jeu d'instru
tion, il y a deux manieres de dieren
ier les modes d'adressage
utilises :
{ par l'utilisation d'un ou plusieurs bits indiquant quel est le mode employe.
Ces bits sont appeles spe
i
ateur d'adresse. Cette methode est adoptee
lorsqu'on souhaite disposer d'un grand nombre de mode d'adressage, et
peut donner lieu a une taille d'instru
tion variable ;
{ par l'utilisation d'op
odes dierents,
e qui permet de
onserver une taille
d'instru
tion xe (
e qui fa
ilitera la realisation materielle).
Taille d'instru tion Plus le jeu d'instru tions est omplexe (en termes de
Allo
ation des bits L'allo
ation des bits pour les dierents
hamps de l'instru
tion depend des fa
teurs suivants :
{ le nombre d'operandes ;
{ le nombre d'operations : pour une taille d'instru
tion xee, plus le nombre
d'op
odes est grand plus la
apa
ite d'adressage de
oulant des
hamps
adresse sera reduite. Si on souhaite a la fois une taille d'instru
tion raisonnable, une
apa
ite d'adressage raisonnable et un nombre d'op
odes
important, on peut utiliser une taille d'op
ode variable. Ainsi, pour des instru
tions utilisant peu de parametres ou une
apa
ite d'adressage moindre,
quelques bits sont rajoutes au
hamps op
ode.
87
bits pour la manipulation des entiers et 32 registres (F0 a F31) de 64 bits pour
la manipulation des
ottants. Les registres R31 et F31 sont a le
ture seule et
ontiennent la representation de 0.
Les instru
tions ont une taille xe de 32 bits. Il y a 4 formats d'instru
tion
possibles :
{ les instru
tions spe
iques au systeme d'exploitation : op
ode sur 6 bits +
un nombre sur 26 bits ;
{ les instru
tions de bran
hement : op
ode sur 6 bits + adresse registre sur
5 bits + depla
ement sur 21 bits ;
{ les instru
tions de transfert de donnees : op
ode sur 6 bits + adresse registre sur 5 bits + adresse registre sur 5 bits + depla
ement sur 16 bits ;
{ les instru
tions utilisees pour les operations de
al
ul entier ou
ottant :
op
ode sur 6 bits + adresse registre sur 5 bits + adresse registre sur 5 bits
+ extension de l'op
ode sur 11 bits + adresse registre sur 5 bits.
(peut ^etre superieur a 520). Neanmoins seuls 32 registres sont visibles simultanements, divises en 4 groupes de registres spe
iques. Les instru
tions ont
une taille xe de 32 bits. 3 format d'instru
tions dierents sont utilises. Le
format est
ode sur 2 bits.
{ le premier ne
orrespond qu'a une seule operation de bran
hement, l'appel
de sous-programme. Cette instru
tion ne
omprend don
pas d'op
ode
mais simplement un depla
ement sur 30 bits ;
88
{ le deuxieme a un op
ode sur 3 bits. Cet op
ode distingue 2 types d'instru
tion
{ les instru
tions de bran
hement : une
ondition de saut sur 4 bits
(
omparee au
ontenu d'un registre de
ondition), un depla
ement
sur 22 bits
{ une instru
tion permettant de
harger une donnee dans les poids
fort d'un registres : adresse registre sur 5 bits + 22 bits de donnee
immediate ;
{ le troisieme format (3 adresses)
orrespond a toutes les autres operations :
une adresse registre de destination sur 5 bits, une adresse registre sour
e
sur 5 bits, une extension de l'op
ode sur 6 bits. Selon
ette extension :
{ une extension du
ode operation pour les operations
ottante sur 9
bits + une adresse registre sour
e sur 5 bits
{ une donnee immediate sur 13 bits
{ un espa
e d'adressage memoire sur 8 bits + une adresse registre
sour
e sur 5 bits.
7.5. CONCLUSION
89
90
91
Chapitre 8
CPU
92
CHAPITRE 8. CPU
93
Registres de
ontr^ole et de statuts En general,
es registres ne sont pas visibles par l'utilisateur. 4 registres sont essentiels a l'exe
ution d'une instru
tion,
ils sont utilises pour l'e
hange ave
la memoire prin
ipale :
94
CHAPITRE 8. CPU
8.3.1 Cy
le normal
Ce travail est ee
tue par la CPU et
onsiste en :
{ re
her
he de l'instru
tion (fet
h) : l'instru
tion est lue depuis la memoire
{ interpretation de l'instru
tion (de
ode) : l'instru
tion est de
odee pour
determiner a quelle a
tion elle
orrespond
{ exe
ution (exe
ute) :
{ re
her
he des donnees (fet
h data) : l'exe
ution de l'instru
tion peut
demander la le
ture de donnees dans la memoire ou depuis un module
d'E/S
{ traitement des donnees (pro
ess data) : l'exe
ution de l'instru
tion
peut demander des operations arithmetiques ou logiques sur les donnees
{ e
riture des donnees (write data) : l'exe
ution de l'instru
tion peut
demander l'e
riture du resultat dans la memoire ou depuis un module
d'E/S
Toutes les ma
hines ont un s
hema d'exe
ution similaire, qui
onsiste don
a
exe
uter la bou
le suivante :
{ repeter
{ fet
h
{ de
ode
{ exe
ute
95
Les
y
les fet
h et de
ode sont simples et previsibles, le
y
le exe
ute est
imprevisible.
8.3.2 Interruptions
Chaque ordinateur permet un me
anisme selon lequel un module (E/S, memoire)
peut interrompre le deroulement normal de
e
y
le. Si une interruption survient,
l'etat
ourant (prin
ipalement le
ompteur ordinal) est sauvegarde et l'interruption est traitee (i.e., l'exe
ution est detournee sur une suite d'instru
tions
traitant l'interruption, appelee routine d'interruption).
Le
y
le d'interruption est simple et previsible :
{ M BR P C
{ M AR une adresse memoire ou sauvegarder PC
{ l'unite de
ontr^ole demande une e
riture dans la memoire prin
ipale
{ P C adresse de la routine d'interruption
Le nouveau
y
le
ommen
e par le fet
h de la premiere instru
tion de la routine
d'interruption.
96
CHAPITRE 8. CPU
97
saut).
Cy
le d'instru
tion Detaillons le
y
le d'instru
tion exe
ute par
ette ma
hine (le traitement de l'op
ode n'est pas detaille).
1. fet
h (LI)
{ RI memoire d'instru
tion(PC)
{ NCP CP + 4
2. de
ode (DI)
{ A registre(RI25::21 )
98
CHAPITRE 8. CPU
{ B registre(RI20::16 )
{ IMM RI15::0
3. exe
ute/
al
ul de l'adresse ee
tive (EX) selon l'op
ode, une des 4
operations suivantes est realisee :
{ a
es memoire
{ SALU A + IMM
{ operation registre-registre
{ SALU A op B
{ operation registre-immediat
{ SALU A op IMM
{ bran
hement
{ SALU NCP + IMM
{ COND A op 0
4. a
es memoire/bran
hement (MEM)
{
hargement
{ DMC memoire donnees(SALU)
{ CP NCP
{ rangement
{ memoire donnees(SALU) B
{ CP NCP
{ bran
hement
{ si COND alors CP SALU sinon CP NCP
{ autres instru
tions
{ CP NCP
5. e
riture du resultat (ER)
{
hargement
{ registre(RI20::16 ) DMC
{ operation registre-registre
{ registre(RI15::11 ) SALU
{ operation registre-immediat
{ registre(RI20::16 ) SALU
L'exe
ution d'une instru
tion prendra de 4 a 5
y
les, les plus rapides etant les
instru
tions de bran
hement. Pour une ma
hine de
e type, on estime qu'elles
onstituent 12 % des instru
tions exe
utes. La duree moyenne d'une instru
tion
est don
de 12% 4 + 88% 5 = 4; 88
y
les.
8.5. PIPELINE
99
Realisation
Un inter^et des ma
hines RISC est qu'elle autorise un pipeline plus e
a
e.
8.5 Pipeline
Pour ameliorer les performan
es de
ette ma
hine on
her
he a diminuer le
temps d'exe
ution d'une instru
tion. L'idee est de faire travailler a la
ha^ne les
dierentes unites fon
tionnelles.
(fet h, de ode, exe ute) realisee ha une en 1 y le d'horloge. La mise en pipeline onsiste a faire travailler en parallele les 3 unites responsables des 3 phases.
100
CHAPITRE 8. CPU
1
inst 1
2
inst 2
inst 1
3
inst 3
inst 2
inst 1
4
inst 4
inst 3
inst 2
5
inst 5
inst 4
inst 3
6
inst 6
inst 5
inst 4
Le temps moyen d'exe
ution d'une instru
tion est divise par 3. On parle de
pipeline a 3 etages. Le temps d'exe
ution de n instru
tions est de 2+n
y
les
d'horloge. Le delai de 2
y
les est appele temps de laten
e du pipeline.
Pipeline a 5 etages Appliquons e prin ipe a la ma hine RISC de rite plus
haut. Les 5 phases doivent ^etre rendues independantes. Toute information issue
d'un etage et devant ^etre utilisee par l'etage suivant doit ^etre memorisee dans un
registre servant d'interfa
e entre les etages. On obtient ainsi le fon
tionnement
de
rit par le tableau suivant :
y
le d'horloge
etage LI
etage DI
etage EX
etage MEM
etage ER
1
inst 1
2
inst 2
inst 1
3
inst 3
inst 2
inst 1
4
inst 4
inst 3
inst 2
inst 1
5
inst 5
inst 4
inst 3
inst 2
inst 1
6
inst 6
inst 5
inst 4
inst 3
inst 2
Quelques remarques :
1. l'emploi de deux
a
hes spe
ialises se revele judi
ieux :
haque memoire
est solli
itee a
haque
y
le. Cela n'aurait pas ete possible si un seul
a
he
ontenant donnees et instru
tions avait ete utilise ;
2. le blo
registres doit permettre deux le
tures (registres sour
es pour l'etage
DI) et une e
riture (resultat pour l'etage ER) dans le m^eme
y
le. Un
probleme survient si l'e
riture
on
erne un registre a
ede en le
ture ;
3. le multiplexeur de sele
tion du registre CP a ete depla
e de l'etage MEM
vers l'etage LI. L'exe
ution a l'etage LI peut dependre de la presen
e dans
l'etage MEM d'une instru
tion de bran
hement
ompliquant le fon
tionnement du pipeline.
8.5. PIPELINE
101
memoire(120)
2. r3
r2 + r1
Au moment ou l'instru
tion 2 a besoin de l'information produite par l'instru
tion
1, l'instru
tion 2 est a l'etage DI et l'instru
tion 1 est a l'etage EX.
Alea de ontr^ole Il on erne les instru tions de modi ation du registre PC.
Le
as trivial est l'instru
tion de bran
hement
onditionnel. Jusqu'a l'exe
ution
d'une telle instru
tion, il est impossible de savoir si un bran
hement est ee
tue
ou non. Par exemple, pour la ma
hine RISC, l'adresse de l'instru
tion suivante
102
CHAPITRE 8. CPU
1
LI
2
DI
LI
3
EX
DI
LI
4
MEM
EX
DI
LI
5
ER
MEM
EX
DI
LI
6
ER
MEM
EX
DI
LI
ER
LI
DI
LI
Cet alea est le prin
ipal fa
teur de degradation de performan
e dans une
ar
hite
ture pipeline.
Plusieurs solutions ont ete proposees pour gerer les bran
hements dans une
ar
hite
ture pipeline :
{ dupliquer l'ar
hite
ture de pipeline pour traiter les deux
as du bran
hement (pris ou pas) ;
{ pre
harger l'instru
tion (ou la suite d'instru
tion)
orrespondant a l'adresse
de bran
hement (quitte a ne pas l'utiliser) ;
{ se baser sur une predi
tion des bran
hements
{ supposer qu'un bran
hement ne sera jamais/toujours pris ;
{ supposer que
ertains op
odes favorisent le bran
hement ;
{ se baser sur un historique des bran
hements ;
{ generer des instru
tion NOP (No OPeration) apres l'instru
tions de bran
hement le temps que le bran
hement puisse se
on
lure.
8.6 Ameliorations
8.6.1 Ar
hite
ture supers
alaire
Les ar
hite
ture supers
alaires disposent de plusieurs unites fon
tionnelles (unites
pour les operations entieres, unites pour les operations
ottantes, ...). Ainsi les
instru
tions les plus
ommunes (arithmetiques,
hargement, rangement, bran
hement) peuvent ^etre exe
utes simultanement et independament dans dierents
pipelines. De plus, les instru
tions peuvent ^etre exe
utees dans un ordre dierent
de l'ordre du programme.
Par exemple, si on exe
ute la sequen
e d'instru
tions
{ DIV x,y
8.6. AMELIORATIONS
103
{ ADDF z,w
{ SUB u,v
les instru
tions se termineront dans l'ordre SUB, ADDF et DIV.
104
CHAPITRE 8. CPU
LOAD Rj,J
LOAD Rk,K
LOAD Rl,L
LOAD Rm,M Ra = Rj + Rk
STORE Ra,A LOAD Rn,N
Rb = Rl Rm
STORE Rb,B
R
= Rn - Rb
STORE R
,C STORE Rd,D
Ce qui fait 5 instru
tions pouvant s'exe
uter
ha
une en 1
y
le d'horloge. Ce
prin
ipe est adopte dans la nouvelle ar
hite
ture 64 bits developpee par Intel et
HP.
Rd = Ra / R
105
Chapitre 9
Unite de ommande
106
DE COMMANDE
CHAPITRE 9. UNITE
9.2 Mi
ro-operations
L'exe
ution d'un programme
onsiste en l'exe
ution sequentielle d'instru
tions.
Chaque instru
tion est exe
utee durant un
y
le d'instru
tion. Un
y
le d'instru
tion se de
ompose en plusieurs phases (fet
h, de
ode, ...). Chaque phase
du
y
le d'instru
tion est
onstitue d'une ou plusieurs etapes simples appelees
mi
ro-operations.
Les mi
ro-operations sont les operations fon
tionnelles atomiques du pro
esseur.
Elles peuvent ^etre regroupees pour s'exe
uter en parallele a
ondition
{ de respe
ter la dependan
e des donnees
{ d'eviter les
on
its
Ce
on
ept est explique sur un exemple simple.
Supposons que nous disposons des registres PC, IR, MAR et MBR de
rit au
ours pre
edent. Le
y
le de l'instru
tion
omprend les
y
les de fet
h, indire
t,
exe
ute et interrupt.
Commen
ons par detailler les
y
les previsibles. Chaque
y
le implique une
petite sequen
e xee de mi
ro-operations.
t1 MAR PC
t2 MBR memoire
PC PC + T
t3 IR MBR
ou T est la taille d'une instru
tion et les ti representent des unites de temps de
valeur egale (le
ompteur ordinal aurait pu ^etre in
remente lors de t3).
indire
t, le
ontenu de IR est dire
tement ae
te pour nalement
ontenir une
adresse dire
te.
t1 MAR IR(adresse)
t2 MBR memoire
t3 IR(adresse) MBR(adresse)
ou IR(adresse) identie le
hamps adresse du registre IR. Le registre IR est
maintenant dans le m^eme etat que si l'adressage indire
t n'avait pas ete utilise.
9.2. MICRO-OPERATIONS
107
Interrupt Apres le y le exe ute, un test est ee tue pour savoir si une in-
terruption est survenue. Si oui, un
y
le d'interruption est de
len
he, qui peut
omprendre les mi
ro-operations suivantes :
t1 MBR PC
t2 MAR adresse de sauvegarde
PC adresse de routine d'interruption
t3 memoire MBR
Exe ute Le y le exe ute n'est pas previsible. Pour une ma hine ave
entre elles, un nouveau registre est ne
essaire qui
ontiendra l'etat du pro
esseur
en terme de
y
le. Appelons
e registre ICC (Instru
tion Cy
le Code). Dans
notre exemple, seuls 2 bits
omposent
e registre :
108
DE COMMANDE
CHAPITRE 9. UNITE
00 fet
h
01 indire
t
10 exe
ute
11 interrupt
Le registre ICC est modie en n de
ha
un des 4
y
les.
Exemple Ainsi, pendant un fet
h, les signaux de
ontr^ole envoyes seront les
suivants :
{ un signal autorisant le
hargement de MAR par le
ontenu de PC
{ simultanement
{ un signal pla
ant le
ontenu du MAR sur le bus d'adresse
DE COMMANDE
9.4. IMPLANTATION DE L'UNITE
109
indire
t
interrupt
timing
t1 : MAR PC
t2 : MBR memoire
PC PC + T
t3 :IR MBR
t1 : MAR IR(adresse)
t2 : MBR memoire
t3 : IR(adresse) MBR(adresse)
t1 : MBR PC
t2 : MAR adresse de sauvegarde
PC adresse de routine d'interruption
t3 : memoire MBR
signal de ontr^ole
C2
C5 , Cr
C4
C8
C5 , Cr
C4
C1
C12 , Cw
un ensemble de bus internes) pour la
ir
ulation interne des dierentes informations (donnees, instru
tions, adresses). Ce bus relie tous les registres internes
et l'ALU. Chaque signal de
ontr^ole interne emis par l'unite de
ommande (ex
eptes les signaux de
lan
hant des operations sur l'ALU)
ontr^ole en fait l'a
es
a
e bus.
110
DE COMMANDE
CHAPITRE 9. UNITE
des operations de
len
hees par des instru
tions d'un langage. Ces instru
tions
sont appelees mi
ro-instru
tions et un programme a base de mi
ro-instru
tions
est appele mi
ro-programme. Une instru
tion et une mi
ro-instru
tion partagent
quelques
ara
teristiques
ommunes :
{ elles sont de
omposees en
hamps
{ elles sont rangees dans une memoire a une adresse pre
ise.
Un de
oupage en
hamps est par exemple :
{ un mot de
ontr^ole
orrespondant a l'a
tivation des signaux binaires
{ 1 bit pour
haque ligne de
ontr^ole interne
{ 1 bit pour
haque ligne de
ontr^ole du bus de
ontr^ole
{ l'adresse de la mi
ro-instru
tion a exe
uter ensuite si une
ondition est
remplie
{ la
ondition de bran
hement
Une telle mi
ro instru
tion est interpretee de la maniere suivante :
1. de
len
her la/les mi
ro-opeations en positionnant les signaux de
ontr^ole
en fon
tion du mot de
ontr^ole (un 1 a
tive un signal, un 0 n'a
tive pas
ou desa
tive un signal)
2. si la
ondition indiquee par les bits de
ondition est fausse alors exe
uter
la mi
ro-instru
tion a l'adresse suivante
3. si la
ondition indiquee par les bits de
ondition est vraie alors exe
uter la
mi
ro-instru
tion dont l'adresse est mentionnee dans le
hamps adresse.
Les mi
ro-instru
tions sont organisees en sequen
es dans une memoire de
ontr^ole.
Chaque sequen
e denit une routine
orrespondant a
{ un sous-
y
le du
y
le d'instru
tion
{ un op
ode pour le
y
le exe
ute
DE COMMANDE
9.4. IMPLANTATION DE L'UNITE
..
.
..
.
saut vers indire
t ou exe
ute
..
.
..
.
saut vers exe
ute
..
.
..
.
saut vers fet
h
saut vers routine d'op
ode
..
.
..
.
saut vers fet
h ou interrupt
..
.
..
.
saut vers fet
h ou interrupt
..
.
..
.
..
.
saut vers fet
h ou interrupt
111
routine du y le fet h
routine du y le indire t
routine du
y
le interrupt
routine du
y
le exe
ute
routine ADD
routine AND
..
.
routine SUB
Lire une instru tion revient a exe uter ette instru tion.
112
DE COMMANDE
CHAPITRE 9. UNITE
2. la mi
ro-instru
tion dont l'adresse est spe
iee par l'adresse
ontenue dans
le registre d'adresse de
ontr^ole est
hargee dans le registre de
ontr^ole
3. le
ontenu du registre de
ontr^ole permet de generer les signaux de
ontr^ole
et donne l'adresse de la mi
ro-instru
tion suivante au sequen
eur
4. le sequen
eur
harge une nouvelle adresse dans le registre d'adresse de
ontr^ole en fon
tion de l'adresse delivree par le registre de
ontr^ole et des
onditions provenant de l'ALU. Cette adresse peut ^etre
{ l'adresse
ourante + 1
{ l'adresse du registre de
ontr^ole
{ l'adresse d'une routine
orrespondant a l'op
ode du registre d'instru
tion