Professional Documents
Culture Documents
Patri k Mar el
24 janvier 2001
2
TABLE DES MATIERES 3
1 Preambule 9
2 Introdu
tion 11
2.1 Introdu
tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Ma
hine Von Neumann . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 Aper
u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.1 Dispositifs de base . . . . . . . . . . . . . . . . . . . . . . 15
2.4.2 Unites fon
tionnelles . . . . . . . . . . . . . . . . . . . . . 16
2.5 Con
lusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Pre-requis 19
3.1 Introdu
tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.1 Prin
ipe de
odage . . . . . . . . . . . . . . . . . . . . . . 20
3.2.2 Quelques
odes . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3 Systeme de numeration . . . . . . . . . . . . . . . . . . . . . . . 22
3.3.1 Conversions binaire-de
imale . . . . . . . . . . . . . . . . 22
3.3.2 Representation des nombres negatifs . . . . . . . . . . . . 23
3.3.3 Representation des nombres reels . . . . . . . . . . . . . . 24
3.4 Algebre de Boole . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.5 Les
ir
uits logiques
ombinatoires . . . . . . . . . . . . . . . . . 28
3.6 Les
ir
uits sequentiels . . . . . . . . . . . . . . . . . . . . . . . . 29
4 Cir
uits de
al
ul 35
4.1 Introdu
tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2 Arithmetique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2.1 Arithmetique binaire . . . . . . . . . . . . . . . . . . . . . 36
4.2.2 Arithmetique
ottante . . . . . . . . . . . . . . . . . . . . 38
4.3 Cir
uits arithmetiques . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3.1 Addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3.2 Multipli
ation . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3.3 Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4
TABLE DES MATIERES
5 Memoire 53
5.1 Introdu
tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.2 Les
ara
teristiques . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.3 Mode d'a
es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.4 Memoire prin
ipale . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.5 Memoire
a
he . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.6 Exemple : le pentium II . . . . . . . . . . . . . . . . . . . . . . . 63
6 Inter
onnexions 65
6.1 Introdu
tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.2 Stru
ture d'inter
onnexion . . . . . . . . . . . . . . . . . . . . . . 66
6.3 Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.3.1 Denition et stru
ture . . . . . . . . . . . . . . . . . . . . 66
6.3.2 Cara
teristiques . . . . . . . . . . . . . . . . . . . . . . . 68
6.4 Syn
hronisation des e
hanges . . . . . . . . . . . . . . . . . . . . 70
6.4.1 Communi
ation syn
hrone . . . . . . . . . . . . . . . . . . 71
6.4.2 Communi
ation asyn
hrone . . . . . . . . . . . . . . . . . 71
6.4.3 Communi
ation semi-asyn
hrone . . . . . . . . . . . . . . 73
6.5 Te
hniques d'arbitrage . . . . . . . . . . . . . . . . . . . . . . . . 73
6.5.1 Types d'arbitrage . . . . . . . . . . . . . . . . . . . . . . . 73
6.5.2 Me
hanismes materiels d'arbitres . . . . . . . . . . . . . . 74
6.5.3 Strategies d'arbitrage . . . . . . . . . . . . . . . . . . . . 77
6.6 Exemple : le bus PCI . . . . . . . . . . . . . . . . . . . . . . . . . 78
7 Jeu d'instru
tions 79
7.1 Introdu
tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
7.2 Denition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
7.3 Cara
teristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
7.3.1 Classi
ation . . . . . . . . . . . . . . . . . . . . . . . . . 81
7.3.2 Types d'instru
tions . . . . . . . . . . . . . . . . . . . . . 83
7.3.3 Types d'operandes . . . . . . . . . . . . . . . . . . . . . . 83
7.3.4 Exemple : le pentium II . . . . . . . . . . . . . . . . . . . 83
7.4 Stru
ture d'une instru
tion . . . . . . . . . . . . . . . . . . . . . 85
7.4.1 L'adressage . . . . . . . . . . . . . . . . . . . . . . . . . . 85
7.4.2 Format d'instru
tion . . . . . . . . . . . . . . . . . . . . . 86
7.4.3 Quelques exemples . . . . . . . . . . . . . . . . . . . . . . 87
7.5 Con
lusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
8 CPU 91
8.1 Introdu
tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
8.2 Organisation de la CPU . . . . . . . . . . . . . . . . . . . . . . . 92
8.2.1 Organisation du pro
esseur . . . . . . . . . . . . . . . . . 92
8.2.2 Organisation des registres . . . . . . . . . . . . . . . . . . 92
8.3 Cy
le de l'instru
tion . . . . . . . . . . . . . . . . . . . . . . . . . 94
8.3.1 Cy
le normal . . . . . . . . . . . . . . . . . . . . . . . . . 94
8.3.2 Interruptions . . . . . . . . . . . . . . . . . . . . . . . . . 95
TABLE DES MATIERES 5
Chapitre 1
Preambule
10
CHAPITRE 1. PREAMBULE
Chapitre 2
Introdu
tion
12 CHAPITRE 2. INTRODUCTION
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
{ ordinateurs dedies, exemplaire uniques
{ ma
hines volumineuses et peu ables
{ te
hnologie a lampes, relais, resistan
es
{ 104 elements logiques
{ programmation par
artes perforees
1958-1964
{ usage general, ma
hine able
{ te
hnologie a transistors
{ 105 elements logiques
{ apparition des langages de programmation evolues (COBOL, FORTRAN,
LISP)
1964-1971 ou 75 ou 78
{ te
hnologie des
ir
uits integres (S/MSI small/medium s
ale integration)
{ 106 elements logiques
{ avenement du systeme d'exploitation
omplexe, des mini-ordinateurs.
1971/5/8-1978/85
{ te
hnologie LSI (large SI)
{ 107 elements logiques
{ avenement de reseaux de ma
hines
{ traitement distribue/reparti
14 CHAPITRE 2. INTRODUCTION
apres Le but originel de
ette
inqieme generation etait les ma
hines langages
dediees a l'IA...
{ te
hnologie VL/WSI (very large, wafer)
{ 108 elements logiques (le PII
ontient 7,5 millions de transistors, memoire
non
omprise)
{ systemes distribues intera
tif
{ multimedia, traitement de donnees non numeriques (textes, images, pa-
roles)
{ parallelisme massif
2.4 Aper
u
Cet aper
u est une introdu
tion au
omportement des dierentes elements
om-
posant 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
hrono-
grammes.
2.4. APERC
U 15
COMPUTER
I/O Memory
System
Bus
CPU
CPU
Arithmetic
Registers and
Logic Unit
Bus Ensemble de ls ele
triques sur lesquels transitent les informations entre
les unites.
Largeur du bus = nombre de ls
onstituant le
hemin = nombre d'impulsions
ele
triques pouvant ^etre envoyes en parallele (en m^eme temps).
ALU Vue
omme une fon
tion a 3 parametres : 1 operation, 2 arguments. Elle
renvoie un resultat.
Un registre lui est asso
ie : l' a
umulateur (ACC ) pour par exemple memoriser
un resultat intermediaire.
? 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.
Compteur ordinal (P C ) = registre
ontenant l'adresse memoire de l'instru
tion
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 !
0 : lirePériph - clavie
1 : additionner - 163
registre 2 : écrirePériph - écr
adresse ALU
accumulateur
registre
mot
horloge 1111111
0000000
0000000
1111111
1111101
00000
écran clavier lecteur
mi ro hargeur).
Chapitre 3
Pre-requis
20
CHAPITRE 3. PRE-REQUIS
3.2 Codage
3.2.1 Prin
ipe de
odage
Soit I un ensemble d'informations. Soit A = fa1 ; : : : ; an g un ensemble ni de
symboles appele alphabet. Les ai sont appeles
ara
teres de A. Un ensemble
ordonne de
ara
teres est appele mot. La base du
odage est le
ardinal de
l'ensemble A.
Coder I
onsiste a faire
orrespondre a
haque elements de I un mot de A. Un
odage est redondant si un element est asso
ie a plusieurs
odes.
Un
odage peut ^etre a longueur xe :
{ numero de telephone d'un parti
ulier
{ numero de se
urite so
iale
{
ode postal
ou a longueur variable
{ alphabet morse
{ ADN
an an 1 : : : a1 a0 =
X n
ai b
i
=0
i
3.2. CODAGE 21
Code BCD/DCB De
imal Code Binaire :
haque
hire d'un nombre est sur
ode 4 bits
0 0000
1 0001
2 0011
.. ..
. .
10 0001 0000
11 0001 0001
Ce
ode simplie la
onversion de
imal binaire.
! L'homme ompte sur ses doigts, l'ordinateur ompte sur ses bits.
an b n
+ an 1 bn 1 + : : : + a1 b + a0
Cas de la partie fra
tionnaire :
a1 b 1 + a2 b 2 + : : : + an b n
= ((: : : (an b + an 1 ) b + : : : ) b + a1 ) b + a0
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 .
?
a 10?
Quelles sont les representations de 100 dans toutes les bases inferieures
-1 110
-2 101
-3 100
24
CHAPITRE 3. PRE-REQUIS
Complement a 2 = omplement a 1 + 1
-1 111
-2 110
-3 101
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 exposant E mantisse M
1 bits 8 bits 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 M valeur representee
max 0 1
max 6 0
= NaN
0 0 0
0 6 = nombres denormalises
La valeur (propageable) NaN signie Not A p Number. Elle est pratique pour
representer le resultat de
ertains
al
ul (e.g., 1).
26
CHAPITRE 3. PRE-REQUIS
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).
! Les portes NAND et NOR sont dites
ompletes
ar on peut realiser n'im-
porte quelle fon
tion boleenne ave
l'une ou l'autre.
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 e0 s0 s1 s2 s3
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1
Et voi
i la realisation d'un tel de
odeur :
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.
30
CHAPITRE 3. PRE-REQUIS
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 K Qi Qi+1
0 0 x x
0 1 x 0
1 0 x 1
1 1 x x
3.6. LES CIRCUITS SEQUENTIELS 31
Inverseur
Ampli inverseur
Opérateur ET (AND)
Opérateur OU (OR)
e1 e0
s0
s1
s2
s3
c1 c0 e3 e2 e1 e0
E1 Q1
Q2 E2
S Q
R Q
3.6. LES CIRCUITS SEQUENTIELS 33
S S Q Q
T
R R Q Q
D
S Q
T
R
J S Q Q
T
K R Q Q
34
CHAPITRE 3. PRE-REQUIS
35
Chapitre 4
Cir
uits de
al
ul
36 CHAPITRE 4. CIRCUITS DE CALCUL
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 b somme retenue
0 0 0 0 somme(a,b) = a b
0 1 1 0 retenue(a,b) = ab
1 0 1 0
1 1 0 1
a b dieren
e retenue
0 0 0 0 dieren
e(a,b) = a b
0 1 1 1 retenue(a,b) = ab
1 0 1 0
1 1 0 0
Exemple : en binaire naturel
27 + 22 = 49 : 11011 + 10110 = 110001
27 - 22 = 5 : 11011 - 10110 = 000101
4.2. ARITHMETIQUE 37
Z = (2n j X j) + (2 j Y j)
n
= 2n+1 (j X j + j Y j)
= 2n+1 jZj
e qui sur n bits donne bien 2n - j Z j.
Considerons le
as du debordement : il y a debordement si
{ les operandes X et Y sont de m^eme signe, et
{ j X j + j Y j 2n+1
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 01011 -5 1...11011 11 01011
13 01101 -3 1...11101 -3 1...11101
143 010001111 15 000001111 -33 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
L'arrondi au plus pres, qui est l'appro
he par defaut,
onsiste a arrondir a la
plus pro
he valeur representable.
s1 =s22 . e1 e2
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.
40 CHAPITRE 4. CIRCUITS DE CALCUL
4.3.1 Addition
La
on
eption d'un additionneur n bits (appele full adder ou additionneur
om-
plet) demande de prendre en
ompte systematiquement la retenue (
arry) en-
trant 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 a b somme rout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
? 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 CHAPITRE 4. CIRCUITS DE CALCUL
ri+1 = gi _ (pi ^ gi 1 )
_ (pi ^ pi 1 ^ gi 2 )
_ :::
_ (pi ^ pi 1 ^ : : : ^ p1 ^ g0 )
_ (pi ^ pi 1 ^ : : : ^ p1 ^ p0 ^ r0 )
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
Don
la retenue a l'etage j peut s'exprimer en fon
tion de la retenue a l'etage
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 = p1 ^ p0
r1 = g0 _ p0 ^ r0
Supposons qu'un additionneur un bit nous
al
ule aussi la propagation et la
generation. Il est possible d'organiser un generateur de retenue en arbre, qui
permet d'anti
iper
haque retenue avant d'additionner.
Multipli
ation sequentielle Supposons que notre ALU
ontienne des re-
gistres de n bits. Un multiplieur sequentiel opere sur 2 nombres non signes,
A = an 1 : : : a1 a0 et B = bn 1 : : : b1 b0 . Ces deux nombres sont
ontenus dans
deux registres A et B , et on utilise un registre supplementaire P . L'algorithme
de
al
ul de A B est le suivant :
1. P 0
2. faire n fois
(a) si le
hire de poid faible de A est 1 alors
{ P P + B,
{ sinon P P + 0
46 CHAPITRE 4. CIRCUITS DE CALCUL
(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).
A =
X2
n=
! 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
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 (ad-
dition, 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.
(b) P P B
(
) 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
2. si P < 0
le bit de poids faible de A est mis a 0
sinon
le bit de poids faible de A est mis a 1
Une restauration nale est toutefois ne
essaire si P < 0 en n de division.
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
Chapitre 5
Memoire
54
CHAPITRE 5. MEMOIRE
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).
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
{ les memoires qui
omposent la memoire prin
ipale,
{ quelques memoires
a
hes.
A
haque mot memoire est asso
iee une adresse unique (pas d'ambiguite dans
la designation du mot re
her
he). Le fon
tionnement est
elui presentee deja au
hapitre introdu
tion. N'importe quelle adresse peut ^etre traitee (d'ou le nom).
La taille d'une adresse depend de la
apa
ite de la memoire. Par exemple, pour
une memoire de 4 Gbits il faut au moins une adresse de 32 bits : 1 gigabits =
230 = 1 073 741 824 bits, 4Go = 4 230 = 22 230 .
Les operations asso
iees a
e mode d'a
es :
{ le
ture(adr),
{ e
riture(adr,donnee)
Le temps d'a
es est
onstant (il est independant des a
es pre
edents).
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.
! L'a
es a la memoire prin
ipale est le
hemin le plus important dans l'or-
dinateur.
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 (Out-
put 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.
{ les 4096 mots de memoires ROM
orrespondront aux adresses les plus
elevees (de 61440 a 65535),
{ les autres adresses resteront ino
upees.
etage bits d'adresse
RAM 0 0000 00xx xxxx xxxx
RAM 1 0000 01xx xxxx xxxx
RAM 2 0000 10xx xxxx xxxx
RAM 3 0000 11xx xxxx xxxx
ino
upe
ROM 4 1111 xxxx xxxx xxxx
Cette memoire possede les parti
ularites suivantes :
{ elle est adressable au mot : deux valeurs
onse
utives d'adresse designent
deux mots
onse
utifs,
{ l'organisation physique mots par mot re
ete l'organisation logique.
Il faut
hoisir une
onvention pour l'adresse de l'o
tet de poids faible dans le
mot :
{ adresse la plus faible du mot :
onvention petit bout (little endian, employe
par la famille i386),
{ adresse la plus elevee du mot :
onvention gros bout (big endian, employe
par la famille 68000)
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 de-
vant 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
Prin
ipe Re
her
he d'une donnee dans le
a
he avant de la re
her
her dans
la memoire prin
ipale :
{ su
es
a
he : la donnee est presente dans le
a
he
{ defaut de
a
he : la donnee est absente du
a
he
Un blo
est un ensemble de mots d'adresses
ontigues. La memoire est de
oupee
logiquement en blo
de m^eme taille (e.g., de 4 a 128 o
tets, 32 o
tets pour un
pro
esseur Alpha AXP 21064). Lors d'un a
es a une adresse, on regarde si le
blo
ontenant l'adresse est dans le
a
he. En
as de defaut de
a
he, le blo
entier est
opie dans le
a
he.
Explorons les
ara
teristiques d'un
a
he.
Taille du
a
he Il doit ^etre suÆsament petit pour que son
o^ut soit pro
he de
elui d'une memoire prin
ipale, et que le temps d'a
es soit le plus interessant
possible, et suÆsament 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...
{
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
.
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).
pro
esseur
a
he
80386 0
80486 1
a
he interne 8Ko
pentium 1
a
he interne donnee 8 Ko et 1
a
he interne instru
tions 8 Ko
pentium 2 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
pentium 3 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
a
he
INTEL
eleron 2 1
a
he interne donnee 16 Ko et 1
a
he interne instru
tions 16 Ko
1
a
he externe 128 Ko
AMD athlon 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 en-
semble. Le
a
he interne donnee utilise un algorithme LRU pour le rempla
e-
ment 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).
Hierar
hie bus multiple Plus le nombre d'equipement
onne
tes a un bus
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 vi-
tesse 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
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.
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).
Performan
es La performan
e d'un bus est denie par les
riteres suivants :
{ la bande passante,
'est a dire la quantite d'inrmations e
hangees par
unite de temps,
{ la laten
e,
'est a dire le temps de reponse du bus a une requ^ete de trans-
fert,
{ la
harge,
'est a dire le nombre maximum d'unites pouvant ^etres
onne
tees
au bus, et
{ la longueur physique du bus.
{ 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.
Dans
e
as, il ne faut pas que t5 soit inferieur a t4 (
e qui peut arriver si
l'emetteur est tres rapide). Si tel est le
as, le pro
hain
y
le de bus pourrait
ommen
er avant la retombee du signal DA. Le proto
ole asyn
hrone semi-
entrela
e permet de resoudre partiellement
e probleme.
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
6.5. TECHNIQUES D'ARBITRAGE 73
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 :
6.5. TECHNIQUES D'ARBITRAGE 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 multi-
pli
ation des lignes de
ontr^ole.
Arbitrage mixte Cette te
hnique est une
ombinaison des deux te
hniques
pre
edentes.
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.
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.
Chapitre 7
! 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.
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 suÆsament expressif pour
oder toute ins-
tru
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.
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.
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 em-
ploient 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.
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.
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.
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
nombre d'op
odes, de types d'operandes et de mode d'adressage), plus fa
ile
(
ompa
te) sera la programmation. Mais un jeu d'instru
tion
omplexe implique
une longueur d'instru
tion importante,
e qui implique une
onsommation im-
portante en espa
e. La longueur d'une instru
tion doit ^etre
onsideree
onjoin-
tement a
{ la taille et l'organisation de la memoire. Ainsi la memoire pourra ^etre
adressable a la taille de l'instru
tion ;
{ la stru
ture d'inter
onnexion. Ainsi la longueur de l'instru
tion sera un
multiple de la taille du bus de donnees ;
{ la
omplexite et la vitesse de la CPU. Par exemple, si la CPU exe
ute
les instru
tions plus vite qu'elle ne les
harge a partir de la memoire, la
memoire devient un goulot d'etranglement ; la solution peut ^etre de reduire
la taille de l'instru
tion.
Pour un jeu d'instru
tion, la taille de l'instru
tion peut demeurer xe ou ^etre va-
riable. Une taille d'instru
tion variable autorise une large gamme d'op
odes (de
tailles dierentes), et une plus grande
exibilite d'adressage. Mais
ela a
roit
la
omplexite de la CPU.
Allo
ation des bits L'allo
ation des bits pour les dierents
hamps de l'ins-
tru
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 rai-
sonnable, 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 ins-
tru
tions utilisant peu de parametres ou une
apa
ite d'adressage moindre,
quelques bits sont rajoutes au
hamps op
ode.
7.4. STRUCTURE D'UNE INSTRUCTION 87
Chapitre 8
CPU
92 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
8.3. CYCLE DE L'INSTRUCTION 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'inter-
ruption 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
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
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.
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 1 2 3 4 5 6
etage LI inst 1 inst 2 inst 3 inst 4 inst 5 inst 6
etage DI inst 1 inst 2 inst 3 inst 4 inst 5
etage EX inst 1 inst 2 inst 3 inst 4
etage MEM inst 1 inst 2 inst 3
etage ER inst 1 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
tion-
nement du pipeline.
1. r2 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
! 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
he-
ment (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.
{ ADDF z,w
{ SUB u,v
les instru
tions se termineront dans l'ordre SUB, ADDF et DIV.
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'ins-
tru
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.
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
n
dierents op
odes, n dierentes sequen
es de mi
ro-operations peuvent se pro-
duire.
Par exemple,
onsiderons l'instru
tion ADD R1,X. Elle peut
orrespondre a la
sequen
e de mi
ro-operations suivante :
t1 MAR IR(adresse)
t2 MBR memoire
t3 R1 R1 + MBR
Considerons maintenant deux exemples plus
omplexes. Le premier
on
erne
l'instru
tion ISZ X, qui in
remente X de 1 et qui saute l'instru
tion suivante
si le resultat est 0. Elle peut
orrespondre a la sequen
e de mi
ro-operations
suivante :
t1 MAR IR(adresse)
t2 MBR memoire
t3 MBR MBR + 1
t4 memoire MBR
si MBR = 0 alors PC PC + T
ou T est la taille d'une instru
tion. Pour l'instru
tion BSA X, qui sauvegarde
l'adresse de l'instru
tion suivante dans X et demande de poursuivre l'exe
ution
par l'instru
tion situee a l'adresse X + T, on a :
t1 MAR IR(adresse)
MBR PC
t2 PC IR(adresse)
memoire MBR
t3 PC PC + T
ou T est la taille de l'instru
tion. Cette instru
tion est typiquement utilisee pour
les appels de sous-routines.
On voit bien qu'une sequen
e de mi
ro-operations est ne
essaire pour
haque
op
ode.
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
..
.
..
. routine du
y
le fet
h
saut vers indire
t ou exe
ute
..
.
..
. routine du
y
le indire
t
saut vers exe
ute
..
.
..
. routine du
y
le interrupt
saut vers fet
h
saut vers routine d'op
ode routine du
y
le exe
ute
..
.
..
. routine ADD
saut vers fet
h ou interrupt
..
.
..
. routine AND
saut vers fet
h ou interrupt
.. ..
. .
..
.
..
. routine SUB
saut vers fet
h ou interrupt
! Lire une instru
tion revient a exe
uter
ette instru
tion.
Ainsi, en un top d'horloge, l'unite de
ommande fon
tionne de la maniere sui-
vante :
1. le sequen
eur envoie une
ommande de le
ture a la memoire de
ontr^ole
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'ins-
tru
tion