Professional Documents
Culture Documents
machines
Support de cours EII 1
D.Chillet
Daniel.Chillet@enssat.fr
http://cairn.enssat.fr
Introduction
objectif du cours
historique des systmes informatiques
machines algorithmiques : classification
Le concept RISC
historique, observations
concepts
volution des processeurs
processeurs CISC -- RISC
Hirarchie mmoire
Mmoire cache
Fonctionnement pipeline
Principe
Objectifs
Problmes
Introduction
Le concept RISC
Hirarchie mmoire
Fonctionnement pipeline
INTRODUCTION
Introduction
Computer Science
Introduction
abaque :
romain : compos d'une plaque mtallique et de 9 rainures dans lesquelles on vient placer
des jetons
rgle calculer
exemple : 2*4
tables :
trs grand nombre de tables produites la main (logarithme, multiplication, etc)
trs nombreuses erreurs
Introduction
la cryptographie et le codage ont pour anctres :
remplacement des lettres par leurs numros
utilis par la cours d'Angleterre : (1561-1626)
les lettres sont cods de la faon suivante :
A = aaaaa
E = aabaa
B = aaaab
F = aabab
C = aaaba
G = aabba
D = aaabb
H = aabbb
Introduction
Morse invente le tlgraphe et
le codage associ :
les lettres sont transmises par
des sries de points et de traits
reprsentation binaire de
symboles :
A
B
C
D
E
F
G
H
I
J
K
L
M
.-...
-.-.
-..
.
..-.
--.
.
..
.---..-..
--
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
Erreur
Debut
Fin
-.
--.--.
--..-.
...
...--..-.---..
0
1
2
3
4
5
6
7
8
9
.
,
?
----.---..---...
-.
--...
---..
----.
.-.-.--..-..--..
..
-.-..-.-.
10
Introduction
notion de programme :
enregistrement pralable d'une suite
d'oprations :
orgue barbarie, pianos mcaniques, boites
musique
portage vers les activits industrielles :
mot "ordinateur" :
proposition de Jacques Perret IBM
France en 1956
mot informatique :
cr par Philippe Dreyfus en 1964
partir des mots :
information
automatique
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
11
Introduction
notion de logiciel :
naissance partir de l'apparition des ordinateurs programmables
machines construites :
mcanique :
Konrad Zuse : machine Z1 (1936), machine entirement mcanique, utilisation d'un
systme binaire pour la reprsentation des nombres, nombres codes en virgule flottante,
la machine recevait le programme sur un film 35 mm avec des trous fait la main
lectromcanique :
Konrad Zuse : machine Z2, Z3 et Z4
le Z3, 1941 (lectromcanique) est considr comme le premier ordinateur avec
programme fournit par bande perfore, traitement des nombres en virgule flottante avec 14
bits pour la mantisse et 7 bits pour l'exposant. Machine ralisant 3 ou 4 additions par
secondes, 1 multiplication en 4 secondes. La machine ne pouvait pas raliser de
branchements conditionnels (frquence de processeur 5,33 Hertz, 20 Flops)
12
Introduction
Stibitz (1904 - 1995) : ralisa un additionneur binaire lectromcanique l'aide
de relais de tlphone,
Les Bell Labs utilisrent cette ide pour construire une calculatrice de nombres
complexes (oprations : addition, soustraction, multiplication, division). Le code
binaire tait redondant si bien que les machines (peu fiable) taient capable de
dtecter des erreurs de calculs
MARK 1 : machine de Babbage lectromcanique, cycle de 6 secondes,
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
13
Introduction
lectronique :
Stibitz : le Z22 : machine entirement lectronique
Atanasoff (1903 1995) : machine ABC (Atanasoff Berry Computer), machine utilisant le
code binaire, oprations d'addition et de soustraction, frquence d'excution de 60
hertz (60 cycles d'excution par seconde). Cette machine servit de modle pour la
construction de l'ENIAC.
14
Introduction
ENIAC :
1943 1944, vitesse de travail 200 000 Hz ou tapes par secondes, la machine travaillait avec la
base 10 et non la base 2, il tait compos d'un multiplieur, d'un diviseur, d'une table de fonction ,
sa programmation consistait connecter les diffrentes units entres elles, la notion de
programmation consistait alors en la ralisation d'un cblage long et non modifiable par la
machine elle mme. L'ENIAC tait sujet une panne tous les 3 jours environ. Il calcul 5000
additions ou 350 multiplications par seconde. Cette machine fut utilise pour calculer les 70
premires dcimale de PI en 70 heures de calcul. La machine fonctionna 10 ans.
7,4 * 5,3 mm
174 569 transistors
Ralis pour le 50ime anniversaire
15
Introduction
16
Introduction
s=a-b
s=a+!b
machine Pascaline :
17
Introduction
Babbage : 1792 -
1871
18
Introduction
1820 : machine diffrences n1 : objectifs : produire des tables
mathmatiques exactes
observation : les longs calculs sont souvent des rptitions d'oprations
similaires (traitement d'une srie d'oprations en squence)
ide de dpart : concept dvelopp par Jacquart
programme inscrits sur cartes perfores
calcul de fonctions polynomiales de degr 6 avec une prcision 16 chiffres
cette machine ne fut jamais acheve
elle donna toutefois naissance premier calculateur automatique (plus simple) qui
mcanisait une rgle mathmatique
ensuite Babbage labora les plans dune machine plus perfectionne : machine
diffrences n2
19
Introduction
1833 : machine analytique :
objectif : trouver la valeur de toute expression mathmatique pouvant sexprimer
sous forme algorithmique (droulement des oprations de faon conditionnelle)
4 oprations de base : addition, soustraction, multiplication, division
itrations et branchements conditionnels permettaient la programmation
deux lments principaux :
20
Introduction
A partir des plans originaux, la machine diffrences n2 fut
construite, elle fonctionne parfaitement :
elle est expose dans un muse Londres
21
Introduction
Boole : 1815 -
1864
mathmaticien
Il conoit l'algbre qui porte son nom :
algbre base sur 2 signes :
Oui = 1 ; Non = 0
et sur 3 oprateurs :
ET ;
OU ;
PAS
A
0
0
1
1
B
0
1
0
1
ET
0
0
0
1
OU
0
1
1
1
PAS B
1
0
1
0
22
Introduction
Turing : 1912 - 1954
il formule le concept de calculabilit :
tout processus logique peut tre dcompos en une suite
doprations lmentaires qui peuvent tre excutes par une
machine
23
Introduction
Machine de Turing :
vue interne
Ruban
de taille
infinie
24
Introduction
Machine de Turing :
vue externe
fonctionnement
la machine est dans un tat
lecture du ruban
criture sur le ruban
dplacement gauche ou droite
changement d'tat
25
Introduction
Exemple de machine:
incrmentation d'une valeur
Etat courant
START
Addition
Retenue
Pas de retenue
Dpassement
Retour
Contenu
cellule
courante
Contenu
crire
Dplacement
tte de
lecture
Nouvel
tat
*
0
1
*
0
1
*
0
1
*
?
0
1
*
*
1
0
*
1
0
1
0
1
*
*
0
1
*
gauche
gauche
gauche
droite
gauche
gauche
gauche
gauche
gauche
droite
droite
droite
droite
rien
Addition
Pas de retenue
Retenue
Retour
Pas de retenue
Retenue
Dpassement
Pas de retenue
Pas de retenue
Retour
Retour
Retour
Retour
STOP
26
Introduction
*
Tte de lecture
Tte de lecture
Etat :
START
Lecture :
*
Ecriture :
*
Dpla :
gauche
Etat suiv : Add
Etat :
Add
Lecture :
1
Ecriture :
0
Dpla :
gauche
Etat suiv : Retenue
Tte de lecture
Tte de lecture
Etat :
Retenue
Lecture :
0
Ecriture :
1
Dpla :
gauche
Etat suiv : Pas retenue
Etat :
Pas retenue
Lecture :
1
Ecriture :
1
Dpla :
gauche
Etat suiv : Pas retenue
27
Introduction
*
Tte de lecture
Tte de lecture
Etat :
Retour
Lecture :
1
Ecriture :
1
Dpla :
droite
Etat suiv : Retour
Etat :
Pas retenue
Lecture :
*
Ecriture :
*
Dpla :
droite
Etat suiv : Retour
Tte de lecture
Tte de lecture
Etat :
Retour
Lecture :
1
Ecriture :
1
Dpla :
droite
Etat suiv : Retour
Etat :
Retour
Lecture :
0
Ecriture :
0
Dpla :
droite
Etat suiv : Retour
28
Introduction
Von Neumann : 1903- 1957
mathmaticien Hongrois brillant :
il changea de nationalit en 1937 pour devenir amricain
il sest intress aux disciplines suivantes :
mathmatiques purs, thories des ensembles, logique, thorie de la mesure, physique, thorie des
oprateurs, statistique, analyse numrique, hydrodynamique, balistique, etc etc
pour raliser les calculs de dtonation et dimplosion, il imagine une nouvelle machine compose
dune unit de calcul, dune mmoire et dun programme.
29
Introduction
en 1944 il rejoint Eckert et Mauchly qui sont en train de mettre au point un calculateur
lectronique :
ENIAC : Electronic Numerical Integrator and Computer : sa premire tche consista dcoder les messages cods des
Nazis
machine pouvant prendre des dcisions en fonction d'un rsultat de calcul prcdent (rsultat positif ou ngatif)
les instructions sont enregistres dans une mmoire et le programme peut sauto modifier, la machine passe du stade
de calculateur celui dordinateur
il publie un rsum du projet, le rapport (un pr rapport suite aux nombreuses discussions sur les limitations de l'ENIAC
avec Eckert et Mauchly) est attribu (maladroitement) Von Neumann, tous les honneurs lui reviennent (Eckert et
Mauchly se sentent exclus du succs auquel ils ont largement particip).
30
Introduction
Von Neumann montre qu'en enregistrant le programme dans la mmoire en
mme temps que les donnes traiter, alors on obtient un automate qui a les
proprits de la machine de Turing :
31
Introduction
32
Introduction
33
Introduction
besoin de refroidissement :
5 chevaux pour la Mark 1 (3700 Watt !!)
encombrement certain :
160 m2 pour la Mark 1
34
Introduction
Dates
Technologies
Vitesses (op/s)
1642
Mcanique
quelques op/s
0'
Electromcanique
0''
1956
Electronique
1946-1957
Tubes vide
40 000
1958-1964
Transistors
200 000
1965-1971
1 000 000
1972-1977
Forte intgration
Large scale integration (LSI)
10 000 000
1978-
35
Introduction
Imprimante
Bus
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
36
Introduction
L'unit centrale :
machine qui excute des ordres lmentaires de faon squentielle
sur des donnes : on parle de machine algorithmique
c'est donc une machine qui manipule des donnes, oprations sur les donnes :
addition, multiplication
consommation des donnes traiter, et production de donnes traites
la diffrence d'une simple calculatrice, l'ordinateur comporte une unit de commande capable de
traiter un programme (interne ou externe)
Donnes
traiter
Donnes
traites
Ordres
Unit de
traitement
Compte
rendus
Unit de
commande
Programmes
37
Introduction
Unit de traitement :
elle effectue, sur les donnes qu'elle reoit, les traitements commands par
l'unit de commande
au cours des traitements, les donnes temporaires sont stockes dans des
mmoires locales internes, REGISTRES
Unit de commande :
elle squence les oprations sur l'unit de traitement
38
Introduction
La mmoire :
a7
a5
a4
a3
Poids fort
des donnes
des programmes
a6
a2
a1
a0
Poids faible
stockage :
valeurs 0 ou 1
Bus d'adresses
001011
Sens de l'accs
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
Bus de donnes
A
39
Introduction
Les entres sorties :
change d'informations entre l'environnement (utilisateur, capteur,
appareils de mesure, etc) et la machine
2 modes d'organisation :
pour les petits systmes :
Unit
centrale
Mmoire
principale
Contrleur
d'cran
Contrleur
de clavier
Contrleur
disquette
Contrleur
disquette
40
Introduction
pour les grands systmes :
Bus mmoire
Mmoire
Unit
centrale
Processeur
d'E/S
Processeur
d'E/S
Priphriques
41
Introduction
notions:
de paralllisme
de partage de ressources
tolrances aux fautes
etc
42
Introduction
Le premier
programme !!!
43
Machines algorithmiques
44
Machines algorithmiques
45
Machines algorithmiques
Les machines programmables :
modle :
Capteurs
Mem
68000
Donnes
traiter
vnements
Donnes
traites
notion de flexibilit :
existence d'un programme "droulant" l'application :
46
Machines algorithmiques
Les machines ddies :
modle :
Capteurs
vnements
Ucontrle
Donnes
traiter
UC
UC
Donnes
traites
pas de flexibilit :
btit le processeur partir des besoins de lalgorithme
mise en place du bon nombre dunits de calcul
chaque unit est taille en fonction des besoins :
47
Machines algorithmiques
48
Machines algorithmiques
Pour une application donne
Machines programmables
Flexibilit
programmabilit
Processeurs
gnraux
DSP
ASIP
Machines ddies
ASIC
Performances
49
Machines algorithmiques
Evnements +
Instructions
AEF
de commande
commandes
Evnements
compte rendu
AEF
de traitement
Donnes
Donnes
50
Machines algorithmiques
St = g ( Xt , Et )
Xt+1 = f ( Xt , Et )
51
Machines algorithmiques
52
Machines algorithmiques
Lautomate de commande :
ragit aux vnements extrieur
cre des vnements pour lenvironnement
gnre le flot de commandes
traduit lalgorithme excuter
Lautomate de traitement :
il est pilot par lAEF de commande
53
Machines algorithmiques
Cmd
AEF de traitement :
Donnes
Cpt
Donnes
AEF
Et : les variables dentre :
commande provenant de lautomate de commande
donnes provenant de lenvironnement (extrieure)
St : les variables de sortie :
St = g ( Xt , Et )
compte rendu de calcul
action sur lenvironnement
Xt+1 = f ( Xt , Et
Xt : le vecteur dtat de lautomate :
mmorisation intermdiaire de calcul
54
Machines algorithmiques
2 modles :
chemins partags
Bus 2
Bus 1
R1 R2 R3 O1 O2
R1
R2
R3
O1
O2
Bus 3
55
Machines algorithmiques
Avantages et inconvnients :
bus point point :
paralllisme maximum
implantation efficace des algorithmes :
coteux :
bus partags :
56
Machines algorithmiques
nombre de registres :
une dizaine dans les premiers processeurs quelques dizaines
dans les processeurs RISC
le rle des registres :
de calcul dadresses et de donnes
ou gnraux
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
57
Machines algorithmiques
la taille de la mmoire adressable :
quelques kilo octets quelques giga octets
1 / temps daccs
taille
mmoires externes aux processeurs
lente, passage par des buffers
et par les pads du circuit
lvolution de la densit a permit dimplanter des mmoires dans le circuit
bnficie dun temps daccs trs rapide
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
58
Machines algorithmiques
Mips
R4000
Pentium
Power PC
601
Frquence
200 Mhz
150 Mhz
66 Mhz
80 Mhz
25 Mhz
50 Mhz
Largeur bus
64 bits
64 bits
32 bits
32 bits
32 bits
32 bits
Cache
2 * 8 ko
2 * 16 ko
2 * 8 ko
32 Ko
2 * 4 ko
8 ko
Units
indp
??
Registres
2 * 32
2 * 32
2*8
2 * 32
16 + 8
2*8
Consom
30 w
15 w
16 w
9w
6w
5w
Prix
2,2
4,7
3,8
2,4
1,8
68040
80486
59
Machines algorithmiques
Mips
R10000
Pentium
II
Power PC
604e
Frquence
600 Mhz
275 Mhz
300 Mhz
350 Mhz
Largeur bus
64 bits
64 bits
32 bits
32 bits
Cache
16 et 8 ko
2 * 32 ko
2 * 16 ko
2 * 32 Ko
Units
indp
Registres
2 * 32
2 * 32
Consom
40 w
30 w
?w
12 w
Pentium 4
Prix
Frquence
2400
Largeur
bus
1200
G4
1250
64
Cache
12 K trace
L1 = 8K
L2 = 256 K
Units
indp
Registres
32 entiers,
80 flottants,
64 MMX
2 * 80 int reg
72 float reg
32 reg
de 128 bits
Consom
55
155
30
Prix
Alpha 21364
L1 = 2*64K
L2 = 1,75 M
L1 = 2 * 32K
L2 = 256K
L3 = 2Mb off
~ $300
60
Machines algorithmiques
61
Machines algorithmiques
AEF de commande :
Evt
AEF
Evt
Cmd
Cpt
Et : les variables dentre :
compte rendu provenant de lautomate de traitement
vnements provenant de lenvironnement (extrieure)
St : les variables de sortie :
vnements destination de lenvironnement
commandes pour le traitement
Xt : le vecteur dtat de lautomate :
St = g ( Xt , Et )
tat courant de lautomate
Xt+1 = f ( Xt , Et
62
Machines algorithmiques
t2
t3
s1 = 1; s2 = 0;
transition 1
e2
s1 = 0; s2 = 0;
t4
t5
transition 2
e3
s1 = 1; s2 = 1;
transition 3
e4
s1 = 0; s2 = 1;
Notion de synchronisation
par rapport une horloge :
- explicite : exprime dans la transition
- implicite : napparat pas dans la transition
63
Machines algorithmiques
Logique
combinatoire
Et
Xt+1
Registre
dtats
Xt
Logique
combinatoire
S
t
Horloge
e1
transition 1
e2
s1 = E3 + E4 & E1; s2 = 0;
transition 2
e3
St = g ( Xt , Et )
Xt+1 = f ( Xt , Et )
s1 = E2 & E1 ; s2 = 1;
64
Machines algorithmiques
Logique
combinatoire
Et
Xt+1 Registre
dtats
Xt
Logique
combinatoire
S
t
Horloge
e1
s1 = 1; s2 = 0;
transition 1
e2
s1 = 0; s2 = 0;
St = g ( Xt )
Xt+1 = f ( Xt , Et )
transition 2
e3
s1 = 1; s2 = 1;
65
Machines algorithmiques
stockage dans une mmoire programme :
Dcodage
dadresses
Contient le codage
de l'application
Variables
tester
Algorithme
Adresses
Droutement
ou passage en
squence
Commandes
ou vnements
vers unit de
traitement
66
Machines algorithmiques
les champs de la mmoire programme :
Fonction
tester
Fi ( x )
Action
raliser
(vers UT)
si
Adresse
de branchement
Ni
67
Machines algorithmiques
Nt
f(x)
f(x)
s0
s1
N0
N1
Adresses suivantes
Actions
Fonctions tester
Adresses courantes
68
Machines algorithmiques
modle simplifi, on peut faire soit :
action :
on ne teste rien, on effectue laction et on poursuit sur ladresse de programme suivante (Nt+1)
test :
Action
Nt
Nt
f(x)
N0
Test et saut
: ne rien faire
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
69
Machines algorithmiques
Nt
Add r1,r2
Ni ;
Nt
true
Ni
Nt
condition
Ni
70
Machines algorithmiques
Instructions de test
if
condition then r1 := r1 + r2 ;
else r1 := r1 - r2 ;
Nt
condition
Nt+3
Nt+1
Add r1,r1, r2
Nt+2
true
Nt+4
Nt+3
Sub r1, r1, r2
Nt+4 .............................................
71
Machines algorithmiques
Instruction de test :
if
Nt
condition
N11
Nt+1
true
N21
Nt+2
................................
N11
Bloc dinstructions 2
N21
N22
.....
N2n2
I 2,1
true
I 2,2
Nt+2
N12
.....
N1n1
I 1,1
I 1,2
true
Nt+2
Bloc dinstructions 1
72
Machines algorithmiques
Instruction de boucles
pour i de 1 N faire
Demande de test
lAEF de traitement
(i-N et test si zro)
bloc dinstructions ;
fait ;
N0
i := 1
N1
i>N
N2
N3
...
...
....
Ni
Ni+1
Ni+2
I1
Initialisation
Ni+2
Test darrt
...
....
......
......
i := i+1
true
.....
N1
.....
Coeur de la boucle
bloc dinstructions
Incrmentation de i
Branchement
.....
73
Machines algorithmiques
Instruction de boucles
faire
Branchement
bloc dinstructions ;
Test darrt
.....
N0
N1
...
...
...
....
....
Ni
Ni+1
condition
.....
.....
.....
I 1
I2
....
....
.....
......
......
Coeur de la boucle
bloc dinstructions
N0
.....
74
Machines algorithmiques
y = factorielle(x);
z = factorielle(s);
a = factorielle(b);
return valeur;
}
75
Machines algorithmiques
structure pour assurer le droutement avec sauvegarde de
contexte
Adresses de droutement
Registre dadresses
Squencement
des instructions
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
+1
PILE
Call ou Return
Stockage des
adresses de retour
76
Machines algorithmiques
instruction call factoriel
Adresses de droutement
PC = @1000
+1
PILE
Call
PC+1
77
Machines algorithmiques
instruction call factoriel suite
Adresses de droutement
Adresse de saut
+1
PILE
Call
1001
78
Machines algorithmiques
instruction return
Adresses de droutement
1001
+1
PILE
Return
79
Machines algorithmiques
Principe de la hirarchisation
Une machine M0 :
dispose dun langage L0
A laide de ce langage, on construit des programmes qui forment le
langage L1
La machine M1 :
est alors une machine virtuelle dans laquelle on pourra implanter
des algorithmes laide des instructions de L1
*
Unit de
commande
de niveau 1
commandes
Unit de
commande
de niveau 0
UT 0
comptes rendus
80
Machines algorithmiques
Il existe plusieurs niveaux de squencement :
il faut les synchroniser
81
Machines algorithmiques
Lenvironnement fournit les commandes (instructions) raliser
Le composant mmoire contient lensemble des micro programmes permettant lexcution
des instruction du niveau suprieur
Un micro programme est constitu de micro instructions
Une micro instruction contient les micro commandes destines lUT0
*
Unit de traitement de niveau 1
Unit de
commande
de niveau 0
UT 0
commandes
82
Machines algorithmiques
Niveau 3, applications
Niveau 2, systme dexploitaton
Niveau 1, langage machine
Niveau 0, micro instructions
83
Machines algorithmiques
Pour rsumer :
les machines ddies :
conues par une approche descendante
construction de la partie oprative du systme
rpondent strictement aux besoins de lapplication
performantes et efficaces
figes donc pas volutives
permettent la conception hirarchique
pas intressant pour la ralisation dun prototype mais conviennent bien aux
grandes sries :
cot (surface, consommation, etc)
protection du systme
conception dASIC
temps de conception assez long
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
84
Machines algorithmiques
Pour rsumer :
les machines algorithmiques programmables :
conues par une approche ascendante :
programmation
flexibilit
volutives
utilisation non optimale des possibilits de la machine
on utilise pas toutes les instructions disponibles
on doit programmer les instructions qui nexistent pas
85
86
87
88
Dcodage de linstruction :
il sagit de savoir quelle instruction doit tre ralise :
une instruction se dcompose en :
un code opration
des oprandes
code opratoire
oprande 1
oprande 2
89
Excution de linstruction :
dcomposition de linstruction en micro instructions par la
machine de commande de niveau 0
move 2(A7), A0
A0
A7
90
3) dcodage de linstruction
4) localisation des ventuelles donnes ncessaires pour linstruction
5) chargement des donnes dans les registres internes de lunit
centrale
6) excution de linstruction
7) stockage des rsultats dans leurs cases mmoire respectives
8) passage linstruction suivante, retour en 1
91
SP
RA
Squencement
UAL
Registre
dinstructions
PC
Mmoire
E/S
Bus de donnes
Unit de
traitement
Unit de
contrle
Unit de
stockage
92
Unit de stockage :
contient les informations relatives :
au programme, donc lapplication
aux donnes traiter
Unit de traitement :
constitue dUAL et de registres de travail
les registres contiennent les informations en cours de traitement :
registres contenant des donnes
registres contenant ltat de la machine
Unit de contrle :
coeur de la machine
ralise le squencement, droulement du programme :
dcode linstruction situe dans le registre RI
adresse la mmoire par le compteur de programme
le registre dadresses permet daccder aux donnes
93
MEM. DATA
REGISTER
PC
ADDRESS
REGISTER
REGISTER
FILE
ALU
MUX
94
instruction de traitement :
arithmtique, logique
instruction de transfert :
entre registres
entre registres et case mmoire
95
Instruction de contrle :
modification du droulement du programme en fonction
dvnements :
INTERNES au processeur : rsultats de calcul, tat de la machine
EXTERNES au processeur : broches dentres / sorties
96
inconditionnel :
saut quelque soit l'tat du processeur
implicite :
cas des interruptions
cas des exceptions
signal extrieur
par exemple division par 0
97
98
2 ) Interruption
Programme
principal
registres
SP
PC
(A)
Programme
dinterruption
3 ) Fin de linteruption
registres
SP
PC
registres
SP
PC
SP
PC
(A+1)
99
Programme
principal
registres
SP
PC
A
Programme
dinterruption
SP
A
PC
3 ) Fin de linteruption
registres
SP
PC
SP
PC
100
UAL
Registre
dinstructions
RA
PC
Mmoire
E/S
SP
RA
Squencement
b) dcodage de linstruction
UAL
PC
Registre
dinstructions
Mmoire
E/S
101
Squencement
UAL
PC
Registre
dinstructions
-1
E/S
SP
Squencement
d) Modification du pointeur
de pile
UAL
RA
PC
Registre
dinstructions
Mmoire
c) sauvegarde du contexte
Mmoire
E/S
102
E/S
RA
Squencement
UAL
e) recherche ladresse de
dbranchement
PC
Registre
dinstructions
code
adresse de saut
Mmoire
SP
Mot 1
103
Instructions de traitement :
traitement des donnes :
oprations de calculs :
arithmtique
logique
104
UAL
Registre
dinstructions
RA
PC
Mmoire
E/S
SP
RA
Squencement
b) dcodage de linstruction
UAL
PC
Registre
dinstructions
Mmoire
E/S
105
c) excution de linstruction
UAL
RA
PC
Registre
dinstructions
Mmoire
E/S
E/S
RA
Squencement
d) Stockage du rsultat
UAL
PC
Registre
dinstructions
Mmoire
SP
106
+1
RA
Squencement
e) passage ladresse
suivante
UAL
PC
Registre
dinstructions
Mmoire
SP
107
Instructions de transferts :
Il existe au moins 3 types de transferts :
entre registres
entre mmoire et registre
entre deux cases mmoire
108
UAL
Registre
dinstructions
RA
PC
SP
RA
Squencement
B) dcodage de linstruction
UAL
PC
Registre
dinstructions
Mmoire
SP
Mmoire
Linstruction de transfert
109
Squencement
C) recherche de la donne
UAL
Registre
dinstructions
RA
PC
SP
RA
Squencement
D) transfert effectif
UAL
PC
Registre
dinstructions
Mmoire
SP
Mmoire
110
Mot 1
Instructions :
add R1, R2, R3
move R1, R2
; R1 = R2 + R3
; R1 = R2
A
B
D
SP
RA
Squencement
UAL
PC
Registre
dinstructions
Mmoire
tape de linstruction :
111
Adressage immdiat :
Codage
code
registre destination
donne
Mot 1
Mot 2
Instructions :
Add R1, R2, #3
Load R1, #20
; R1 = R2 + 3
; R1 = 20
B
D
SP
RA
Squencement
UAL
PC
Registre
dinstructions
Mmoire
112
Adressage direct :
codage :
code
Instructions :
registre destination
Adresse partie 1
Adresse partie 2
Mot 1
Mot 2
Mot 3
; R1 = R2 + Mmoire[1000]
; R4 = Mmoire[2000]
B
C
D
SP
RA
Squencement
UAL
PC
Registre
dinstructions
Mmoire
113
Adressage indirect :
codage : indirect registre
code
Mot 1
registre destination
Adresse partie 1
Adresse partie 2
Mot 1
Mot 2
Mot 3
Instructions :
Add R1, R2, @(R3)
Li R4, @(R5)
; R1 = R2 + Mmoire[Mmoire[R3]]
; R4 = Mmoire[Mmoire[R5]]
indirect registre 4 UT
indirect mmoire 12 UT
114
registre destination
Adresse partie 1
Adresse partie 2
Mot 1
Mot 1
Mot 2
Mot 3
115
Adressage index:
codage : index immdiat
code
registre base registre destination
index
Mot 1
Mot 2
Instructions :
Add R1, R2, R3(R4)
; R1 = R2 + Mmoire[R3+R4]
116
Reg dest
Oprande
Mmoire
Direct
Op code
Reg dest
Adresse
Oprande
Indirect mmoire
Op code
Reg dest
Adresse
Oprande
Adresse
117
Mmoire
Reg dest
Registre
Registre
Oprande
Dplacement (index)
Op code
Reg dest
Adresse
Pile :
accs mmoire implicite
Registre
Registre
Oprande
Oprande
Op code
Sommet
de la pile
118
119
120
121
122
0 oprande (NOP)
1 oprande
2 oprandes (jeu d'instructions destructif)
3 oprandes (c'est la tendance des processeurs rcents)
123
Machines RISC
124
Machines RISC
nb de cycles
faible
nb de cycles
instructions plus complexes
important
oprations sur les flottants
instructions qui se rapprochent dun langage haut niveau
125
Machines RISC
La famille des processeurs Intel
Loi de Moore
Itanium ?
Processeurs 16 bits
106
Processeurs 8 bits
Pentium IV
Pentium Pro
Pentium
Pentium II
80486
105
80286
104
8086
8080
4004
103
1970
1975
1980
Processeurs 64 bits
80386
Processeurs 32 bits
107
Processeurs 4 bits
108
1985
1990
1995
2000
2005
2010
126
Machines RISC
107
Itanium ?
Pentium iv
Pentium Pro
Pentium
80486
80386
Processeurs 32 bits
80286
8086
106
8080
105
4004
1970
1975
1980
Pentium II
1985
1990
1995
Processeurs 64 bits
Processeurs 16 bits
108
Processeurs 8 bits
Frquence d'horloge
109
Processeurs 4 bits
1010
2000
2005
2010
127
Machines RISC
Observations :
les instructions les moins couramment utilises sont celles
qui engendrent le plus de contrle :
adressages complexes (pr-post incrment, bas, index, ...)
tous les calculs peuvent sexcuter avec des oprandes en mmoire
(via tous les adressages)
latences des instructions trs variables
difficult pipeliner lexcution
jeux dinstructions non orthogonales
jeux dinstructions mal utiliss par les compilateurs
volutions technologiques :
Annes 70 : cot mmoire important, il faut rduire la taille du code,
code dense, code complexe
Annes 80 : volution des compilateurs, architecture chargement/
rangement
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
128
Machines RISC
occurrence des instructions
load
store
add
sub
or
and
xor
sl
sr
mult
div
sqrt
129
Machines RISC
Exemple d'occurrences des instructions pour un 80x86
130
Machines RISC
Rgle des 90 - 10 :
par une analyse des excutions des programmes, on remarque que
seules
10 % des instructions sont utilises 90 % du temps.
les 90 % dinstructions inutilises cotent cher en temps et en
surface silicium
Ide : on limite le nombre dinstructions celles qui sont le plus
utilises
On ralisera les instructions complexes par programmation
instructions ralisables en 1 cycle
horloge rapide
Plusieurs instructions
en 1 cycle
Instruction complexe
en n cycles
Processeur RISC
131
Machines RISC
RISC :
instructions simples
instructions rapides
Contrleur simple
paralllisme
132
Machines RISC
Historique
Cahier des charges du premier RISC
Consquences
133
Machines RISC
IBM 801
RISC 1
RISC2
Annes
1980
1982
1983
Nb instructions
120
39
55
Taille instructions
32
134
Machines RISC
CISC
RISC
IBM 370/168
VAX 11/780
Intel 80486
SPARC
MIPS R4000
1973
1978
1989
1987
1991
Nb instructions
208
303
235
69
94
Taille instructions
2-6
2-57
1-11
22
11
16
16
40-520
32
420
480
246
64
64
32
128
Nom
Annes
Nb de mode d'adressage
Nb registres
Mmoire de contrle
Taille cache
135
Machines RISC
136
Machines RISC
Instructions simples ne prenant quun cycle
Traitement pipeline
137
Machines RISC
superscalaire :
units fonctionnelles indpendantes
unit de disptaching (jusqu 6 instructions lances par cycle pour le R10000)
architectures 32 ou 64 bits
hirarchie mmoire complexe :
bus de donnes entre cache et buffer large
premier et second niveau de cache intgrs (on chip)
138
ORGANISATION
MEMOIRE
139
Organisation mmoire
Rappel
les mmoires
140
Organisation mmoire
volution :
en 1980, les ordinateurs navaient que quelques kilo octets de mmoires
actuellement, il faut au minimum quelques centaines mga octets
141
Organisation mmoire
142
Organisation mmoire
Illustration des diffrents temps d'accs
Technologie
Tps accs
Echelle humaine
Capacits
Indication de prix
$ / Mo
Registre
1 2 ns
1s
64 * 64 bits
Fait partie du
processeur
Cache intgr
3 ns
3s
32 ko
Fait partie du
processeur
Cache externe
25 ns
25 s
4 Mo
40
Mmoire
principale
200 ns
3 min
1 Go
2,5
Disque
12 ms
139 jours
10 Go
0,010
Bande
10 20 s
50 Go
< 0,05
143
Organisation mmoire
Reprsentation des niveaux de mmoire
144
Organisation mmoire
Ct applications
Notion de localit dans les accs mmoire :
localit spatiale :
si le processeur excute linstruction de ladresse @i, il y a de forte chance quil
excute trs prochainement linstruction de ladresse @i+1
localit temporelle :
si le processeur traite la donne d linstant t, il y a de forte chance quil traite
nouveau cette donne dans une temps trs proche
145
Organisation mmoire
Boucle
LD
ADD
MULT
SUB
BRnz
R0, R1
R2, R3, R4
R5, R2, R7
R10, R10, #1
R10, Boucle
146
Organisation mmoire
Localit spatiale
Adresses
Localit temporelle
Temps
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
147
Organisation mmoire
Ides de base :
mise en place d'une hirarchie mmoire :
mmoire de petite taille, rapide, proche du processeur
mmoire de grande taille, lente, loigne du processeur
Processeur
(registres)
Taille
Mem
Mmoire
Mmoire
Mmoire
Cot
Placer dans cette mmoire
les donnes utilises par
le processeur dans un intervalle
de temps
148
Organisation mmoire
149
Organisation mmoire
Donnes
Mmoire rapide
Mmoire lente
Fonctionnement
Processeur
Adresses
Soit
N : la taille du bloc
P : le nombre de donnes lues et/ou crites dans un bloc
TpsL : le temps daccs la mmoire lente
TpsR : le temps daccs la mmoire rapide
150
Organisation mmoire
Lefficacit et lacclration sexpriment :
Eff =
Acc =
P * TpsR
2 * N * TpsL + P * TpsR
P * TpsL
2 * N * TpsL + P * TpsR
< P * TpsL
151
Organisation mmoire
Intrt dune hirarchie mmoire
P >
2 * N * TpsL
TpsL - TpsR
plus la diffrence entre les temps daccs est faible, plus les
donnes de la page doivent tre rutilises
si P est faible, alors la hirarchie est peu intressante
Exemple :
Soit N = 256 et TpsL = 2 * TpsR
P >
P >
P >
2 * 256 * 2 * TpsR
2 * TpsR - TpsR
2 * 256 * 2
4 * 256
si P
Organisation mmoire
alors :
Eff =
P * TpsR
2 * N * TpsL + P * TpsR
Eff
Acc =
P * TpsL
2 * N * TpsL + P * TpsR
Acc
Equivalent
un systme
sans hirarchie
avec mmoire rapide
TpsL
TpsR
153
Organisation mmoire
Processeur
Mmoire cache
Mmoire principale
Registres
Bibliothque
Mmoire secondaire
(disque) de Rennes 1
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit
154
Organisation mmoire
le travailleur :
Processeur
travaille sur les feuilles places
directement devant lui
Mmoire
cache
Unit de
calcul
Registres
Mmoire
Cache
Registres
155
Organisation mmoire
Larmoire :
contient les dossiers
laccs est plus
lent
laccs se fait par
dossier et non par
Mm
oire
prin
cipa
le
feuille
156
Organisation mmoire
La bibliothque :
contient les dossiers
laccs est trs
lent
laccs se fait par N
dossiers et non dossier par
dossier
Mmoire principale
Bibliothque
Mmoire secondaire
(disque) de Rennes 1
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit
157
Organisation mmoire
dfaut de cache :
on dit quil y a dfaut de cache lorsque la donne rclame par le processeur ne se
trouve pas dans le cache
158
Organisation mmoire
Ncessit de raliser une association entre :
donne (ou bloc de donnes)
adresse (portion dadresse du bloc)
Portion
dadresses
Blocs
Processeur
TAG
Adresses
Comparaison
TAG == Adresse
Vers mmoire
centrale
159
Organisation mmoire
On divise : la mmoire cache en n blocs
la mmoire principale en N blocs
Processeur
Contrleur
Mmoire
n Blocs
Avec N >> n
Adresses
160
Organisation mmoire
5.3.1) Rangement des blocs dans le cache
mmoire cache en correspondance direct :
un bloc a une place fixe dans le cache quelque soit linstant o il est appel
simplifie la logique mettre en oeuvre pour la gestion du cache
nest pas optimale dans la faon de remplacer les blocs
un bloc i de la mmoire principale est stock dans le cache ladresse
Mmoire principale
bloc 0
bloc 1
...
bloc n-1
bloc n
...
...
bloc 2n-1
bloc 2n
...
Cache
n lignes de cache
161
Organisation mmoire
mmoire cache associative :
un bloc une place diffrentes dans le cache et ceci en fonction du remplissage
du cache avant lappel du bloc
logique de gestion plus lourde
permet de mettre en oeuvre une politique de remplacement des blocs plus
judicieuse (par exemple le remplacement du bloc le plus anciennement utilis) :
0
4
8
12
...
...
...
224
A
B
C
D
E
...
...
0
1
2
3
...
...
...
222
Numros
Adresses
Cache
N bloc
donnes
1
3
B
D
22 bits
4 fois 8 bits
162
Organisation mmoire
mmoire cache associative par ensemble de N voies :
0
4
8
12
...
...
...
224
random
fifo
lru
lfu
0
1
2
3
...
...
...
222
Cache
N bloc
donnes
fifo - lru
Numros
Adresses
4 fois 8 bits
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
163
Organisation mmoire
recherche de l'emplacement dans le cache :
Mmoire principale
0
1
2
3
4
5
6
7
8
249
250
251
252
253
254
255
Mmoire cache
NumEnsemble
NumEnsemble = 5 modulo (8 / 2)
= 5 modulo 4
=1
0
1
2
3
4
5
6
7
0
1
2
3
164
Organisation mmoire
Politique d'criture dans la mmoire principale
lorsque le processeur modifie une valeur contenu dans un bloc de
cache
Mmoire
Cache
Processeur
Incohrence
165
Organisation mmoire
2 politiques de mise jour de la mmoire principale :
write back :
un dfaut de cache avec rapatriement de bloc sur un bloc modifi cote cher
TAG
donnes
fifo - lru
1 bit
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
166
Organisation mmoire
2 politiques de mise jour de la mmoire principale (suite) :
write through :
on surcharge le bus d'accs la mmoire, pour viter cela, on peut placer un write buffer
Processeur
Cache
Write buffer
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
167
Organisation mmoire
politiques pour l'criture d'une donne qui n'est pas dans le cache :
Ecriture dans le cache
Ecriture dans
la mmoire
Oui
Non
Oui
Write through
Write allocate
Write through
No write allocate
Non
Write Back
Write through, write allocate : le bloc est ramen dans le cache, et l'criture est ralise
dans le cache
Write through, no write allocate : l'criture est ralise dans la mmoire, pas dans le
cache
168
Organisation mmoire
Nbr
de TAG
Taille
du TAG
Mmoire
TAG
256
16
1
1
16
256
16
20
24
16
320
6144
Mmoire
256 * 16
4 Kbits
169
Organisation mmoire
Comment dimensionner un cache ?
il faut analyser lapplication
relever le nombre de fautes (ou dfaut de cache) en fonction de la
taille du cache :
si h est la probabilit daccs une donne en cache
Dfaut de cache
100 %
Temps daccs
100 %
Taille du cache
Taille du cache
170
Organisation mmoire
Exemple : soit une mmoire ayant un temps daccs = 100 et une taille
gale 1024
Tps Cache
Taille
Dfaut
Taccs
-10
0
16
100% 60 %
100
64
20
32
50 %
60
30
64
40 %
58
40
50
128
256
30 % 20 %
58
60
60
512
10 %
64
70
1024
0%
70
dtermination :
taille des blocs
taille du cache
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
171
Organisation mmoire
4
8
16
32
64
128
(i = 0 ; i < N ; i++) {
for (j = 0 j < N ; j++) {
c[i][j] = 0;
for (k = 0 ; k < N ; k++) {
c[i][j] = c[i][j] + a[i][k] * b[k][j] ;
}
}
correspondance directe
LRU
FIFO
Random
172
Organisation mmoire
Le programme est le suivant :
1600
MOVE
MOVE
MOVE
MOVE
R1,
R2,
R3,
R4,
@a00
@b00
@c00
N
-----
boucle1
MOVE R5, N
-- Nombre de colonnes
MOVE R6, N
MOVE R7, 0
MOVE
MOVE
MULT
ADD
SUB
BRnz
MOVE
SUB
SUB
BRnz
MOVE
ADD
SUB
BRnz
---------------
boucle2
boucle3
R8, (R1)++
R9, (R2)++
R8, R9
R7, R8
R6, 1
boucle3
(R3)++, R7
R1, N
R5, 1
boucle2
R2, @b00
R1, N
R4, 1
boucle1
173
Organisation mmoire
La liste des accs est la suivante :
2
2
2
2
2
2
2
2
0
2
0
2
2
2
2
2
0
2
0
2
2
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
R1,@a00
R2,@b00
R3,@c00
R4,N
R5,N
R6,N
R7,0
R8,(R1)++
MOVE R9,(R2)++
MULT R8,R9
ADD R7,R8
SUB R6,1
BRnz boucle3
MOVE R8,(R1)++
MOVE R9,(R2)++
MULT R8,R9
ADD R7,R8
2
2
0
2
2
2
2
2
1
2
2
2
0
2
0
2
649 -648 -47 --649 -64a -64b -64c -64d -80 --64e --
Acces
Acces
Acces
Acces
Acces
Acces
Acces
Acces
Acces
Acces
a l'instruction
a l'instruction
B[7][0]
a l'instruction
a l'instruction
a l'instruction
a l'instruction
a l'instruction
C[0][0]
a l'instruction
MULT R8,R9
MOVE R9,(R2)++
MOVE R7,0
MOVE R8,(R1)++
MULT R8,R9
ADD R7,R8
SUB R6,1
BRnz boucle3
MOVE (R3)++,R7
SUB R1,N
MOVE R9,(R2)++
MULT R8,R9
174
Organisation mmoire
16
32
64
128 256
Associativit
16
32
64
128
Associativit
175
Organisation mmoire
Taille des blocs = 16
16
32
64
Associativit
1
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
16
32
Associativit
176
Organisation mmoire
Taille des blocs = 64
16
Associativit
1
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1
Associativit
177
Organisation mmoire
Conclusions des simulations :
une taille de blocs trop petites engendre beaucoup de dfauts de
cache :
bien que la mise en place de blocs de petites tailles apporte une plus grande
souplesse dans la gestion des remplacements, il s'avre que le nombre de
dfauts est lui augment
178
Organisation mmoire
Evolution :
les tailles disponibles augmentent
les temps de cycle diminuent
elles sont de plus en plus souvent intgres sur le circuit :
permet de les faire travailler avec des temps de cycle proche de celui du CPU
permet daugmenter facilement la taille des bus entre cache et contrleur 32, 64,
128 bits --- 1, 2, 4 instructions charges chaque accs
Le cache des instruction ne pourra jamais tre remplit avec des blocs de donnes ce qui pourrait tre
intressant pour des applications fort volume de donnes et code peu important
for (i = 0 ; i < N ; i++) {
for (j = 0 j < N ; j++) {
c[i][j] = 0;
for (k = 0 ; k < N ; k++) {
c[i][j] = c[i][j] + a[i][k] * b[k][j] ;
}
}
}
179
Organisation mmoire
Mmoire
Mme packaging
Disque
Cache 2
Cache 1
Processeur
Disque
Mmoire
Unifi
Cache instructions
Processeur
Cache 2
Cache donnes
Non Unifi
180
Organisation mmoire
Et pourquoi pas un troisime niveau ?
Solution mise en uvre dans l'Itanium 2 :
3MB pour le niveau 3
181
Organisation mmoire
Itanium 2, cur Madison :
410 million de transistors !!!
182
Organisation mmoire
Montecito : Dual Core Itanium
Cache de niveau 2 non unifi
Total cache : 27 Moctets
183
Organisation mmoire
L3
L2
L2
L1
L1
Processeur
Exclusif :
Un bloc rapatri dans le L1, nest pas copi dans le L2, L3, etc
Un bloc ject du Li, prend place dans le Li+1
184
Organisation mmoire
Amlioration des performances des caches : (1600 articles entre 89 et 95)
3 axes de recherches important :
1) rduction du taux dchec
2) rduction de la pnalit dchec
3) rduction du temps de laccs russi au cache
185
Organisation mmoire
1) rduction du taux dchec :
augmentation de la taille du cache
augmentation de la taille des blocs :
ils tirent profit de la localit spatial, si le processeur excute linstruction de ladresse @i au temps t, il
y a de forte chance quil excute trs prochainement linstruction de ladresse @i+1
augmente la pnalit dchec, plus dinformation transfrer lorsquil y a chec
nombre de blocs moins important, donc moins souple
186
Organisation mmoire
Exemple de cache de victime :
Processeur
Accs blocs :
N 4
N 12
N 4
N12
Mmoire
Cache
correspondance
directe
(N mod 8) Cache des victimes
(associatif)
187
Organisation mmoire
mise en place de caches pseudo associatifs :
cest un cache correspondance directe amlior
lorsquil y a chec lors dun accs, et avant daller chercher dans la mmoire principale, on va tester
un autre bloc : une manire simple de le faire est dinverser le bit le plus significatif de lindex
Cache L1
Cache L1
1) ?@a
2) ?@a
Processeur
Processeur
@a
@a + L
Cache L1
3) ?@a+L
Processeur
@a
@a + L
@a + 2L
188
Organisation mmoire
lecture anticipe par le compilateur :
instructions de pr chargement disposes par le compilateur dans le code
la lecture anticipe na de sens que si le processeur peut continuer travailler pendant que la
donne est en cours de lecture, ce qui conduit la mise en place de cache non bloquant
anticipation : ni trop tt, ni trop tard (valeur de k dans lexemple ci-dessous ?? )
189
Organisation mmoire
optimisation du compilateur :
for (i = 0 ;
for (j =
for
}
}
}
i < N ; i++) {
0 j < N ; j++) {
(k = 0 ; k < N ; k++) {
c[i][j] += a[i][k] * b[k][j] ;
BT
for (i = 0 ;
for (j =
for
}
}
}
i < N ; i++) {
0 j < N ; j++) {
(k = 0 ; k < N ; k++) {
c[i][j] += a[i][k] * bt[j][k] ;
0 1 2 3 4
5 6 7
0
1
2
3
4
5
6
7
7
190
Organisation mmoire
2) rduction de la pnalit dchec :
priorit aux lectures par rapport aux critures :
191
Organisation mmoire
2) rduction de la pnalit dchec (suite) :
comment ne pas attendre la fin du chargement de tout le bloc ?
redmarrage prcoce :
lors dun dfaut daccs la donne di, on rapatrie le bloc de la mmoire vers le cache, ds que la
donne est arrive dans le cache on la fait passer au processeur qui peut ainsi continuer, en
parallle le bloc continue tre rapatri
192
Organisation mmoire
second niveau de cache :
193
Organisation mmoire
194
Pipeline
195
196
T1
T2
T3
T4
T5
T6
197
T2
T3
T4
T5
T6
198
Cadence de production :
1 nouvelle pice toutes les 6 units de temps
199
200
T2
T3
T4
T5
T6
201
T2
T3
T4
T5
T6
Cadence de production :
1 nouvelle voiture toutes les units de temps
202
f1
f1
f1
f1
f1
f1
f2
f2
f2
f2
f2
f2
f3
f3
f3
f3
f3
f3
f4
f4
f4
f4
f4
f4
f5
f5
f5
f5
f5
f5
f6
f6
f6
f6
f6
f6
203
PE1
PE2
PE3
PE4
Donnes
traites
Donnes
clock
204
PE1
PE2
PE3
PE4
PE2
PE3
PE4
PE3
PE4
4 processeurs lmentaires
4 registres
Dcoupage N 2 :
PE1
4 processeurs lmentaires
3 registres
Dcoupage N 3 :
3 processeurs lmentaires
3 registres
PE12
Gnralisation
soit TpsCalcul le temps de calcul de lensemble des traitements
soit N le nombre de tranches de pipeline
soit Tcycle le temps de cycle (cadence des traitements) :
Tcycle = TpsCalcul / N + Treg
soit D le nombre de donnes traiter
soit T(D) le temps d e traitement de D donnes :
T(D) = ( D + N - 1 ) * Tcycle
le temps de traitement par donne est donc ramen :
T(D) / D = ( D + N - 1 ) * ( TpsCalcul / N + Treg ) / D
si D ->
si N ->
T(D) / D = N / D * Treg
206
pente :
ti
pente : Tcycle
Tcycle = max ( T(PEi) )
Tcycle =
T(PEi) / N
N * Tcycle
T(PEi)
1
10
Nb donnes
207
Problme de lamorage :
t = 0
t = 1
d1
d2
t = n-1
t = n
t = n+1
dn
dn+1
dn+2
d1
d2
208
209
s5
a2
b2
a1
b1
a0
b0
a0b0
a2b1
a1b2
a1b0
a0b1
a2b2
a2b0
a1b1
a0b2
s4
s3
s2
s1
s0
0 0
a2b0 0 0
+
a2b1 0
a1b1
a1b0 0
a0b0
a0b1
a0b2
fonction
combinatoire :
TpsCalcul = 5 UT
1 UT = TpsAdd
a1b2
+
a2b2
+
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes
s5 1 s4
s3
s2
s1
s0
210
mise en place de
registres :
a2b0 0 0
5 tages
TpsCalcul * = 5 UT
Cadence Calcul = 1 UT
1 calcul toutes les UT
a2b1 0
a1b1
a1b0 0
a0b0
a0b1
a0b2
+
a1b2
+
a2b2
+
Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes
s5 1 s4
s3
s2
s1
s0
211
Li
Di
Ex
Rr
Li
Di
Ex
Contrleur pipeline : i
Li
Di
Li
Ex
Di
Li
Rr
Ex
Di
Li
Rr
Ex
Di
Rr
Ex
Rr
i+1
i+2
i+3
Rr
212
i
Li Li Di Di Ex Ex
i+1
Li Li Di Di Ex
i+2
Li Li Di Di
i+3
Li Li Di
i+4
Li Li
i+5
Li
Rr
Ex
Ex
Di
Di
Li
Li
Rr
Rr
Ex
Ex
Di
Di
Li
Li
Rr
Rr
Ex
Ex
Di
Di
Li
Rr
Rr
Ex
Ex
Di
Di
Rr
Rr
Ex
Ex
Di
Rr
Rr Rr
Ex Rr Rr
Ex Ex Rr Rr
213
i1
i2
i3
Li
R1, R2
R1, 3
@adresse
Di
Li
R1 := R2
R1 := R1 -3
si R1 = 0 alors saut
R1 := R2
Di
Li
R1 - 3
Di
teste et saut
214
i1
i2
i3
Li
R1, R2
R1,R3
R1, 3
Di
Li
R1 := R2
R1 := R1 + R3
R1 := R1 -3
R1 := R2
Di
Li
R1 + R3
Di
R1 - 3
215
R1, R2
R1,R3
R4, R1
R1 := R2
R1 := R1 * R3
R4 := R1
i1
i2
i3
Li
Di
Li
Rsultat de la
multiplication
R1 := R2
Di
Li
R1 * R3
Di
R4 := R1
216
R1, R2
R1, 3
R1 := R2
R1 := R1 -3
@adresse
si R1 = 0 alors saut
i1 : move
i2 : add
i3 : NOP
i4 : sub
R1, R2
R1,R3
R1 := R2
R1 := R1 + R3
R1, 3
R1 := R1 -3
217
Architecture parallle :
augmentation de la capacit de traitement par l'excution
concurrente
Architecture pipeline :
augmentation de la capacit de traitement par
recouvrement temporel des traitements lmentaires.
218
Bibliographie
219
Bibliographie
Architecture de lordinateur
E.Lazard
220