Académique Documents
Professionnel Documents
Culture Documents
(INF155)
F. Pellegrini
Universit de Bordeaux
Ce document est copiable et distribuable librement et gratuitement la condition expresse que son contenu ne soit modifi en
aucune faon, et en particulier que le nom de son auteur et de son institution d'origine continuent y figurer, de mme que le
prsent texte.
2014,2016 F. Pellegrini
Ordinateur et logiciel
Les technologies numriques sont maintenant
omniprsentes
Elles sont le moteur et l'objet de ce qu'on appelle
la rvolution numrique
Reprsentation de l'information
L'information est reprsente au sein des
composants de l'ordinateur sous forme de
diffrents tats de la matire :
Trou ou pas trou sur la surface d'un
cdrom ou DVD
Orientation nord ou sud d'un matriau magntique
Lumire ou absence de lumire mise par un laser
Courant lectrique ou non
Regroupement
au
sein
de
circuits
intgrs
2014,2016 F. Pellegrini
Performance (1)
Les calculs des ordinateurs sont cadencs par
une horloge
Plus la frquence de l'horloge est leve, et plus
l'ordinateur pourra effectuer d'oprations par
seconde (s'il n'est pas ralenti par autre chose...)
On mesure la frquence d'une horloge en Hertz (Hz)
Nombre de battements par seconde
1 kHz (kilo-Hertz) = 103 Hz
1 MHz (mga-Hertz) = 106 Hz
1 GHz (giga-Hertz) = 109 Hz
1 THz (tra-Hertz) = 1012 Hz
2014,2016 F. Pellegrini
Performance (2)
En fait, ce qui importe aux usagers, c'est le
nombre d'oprations (plus gnralement,
d'instructions ) qu'un ordinateur est capable
d'effectuer par seconde
On la mesure en MIPS, pour millions
d'instructions par seconde
http://en.wikipedia.org/wiki/Instructions_per_second
2014,2016 F. Pellegrini
2014,2016 F. Pellegrini
http://en.wikipedia.org/wiki/Sandy_Bridge
9
10
11
2014,2016 F. Pellegrini
12
13
14
2014,2016 F. Pellegrini
15
2014,2016 F. Pellegrini
16
17
Mmoire
centrale
Contrleur
de disque
dur IDE/ATA
2014,2016 F. Pellegrini
Contrleur
de bus
PCI
Contrleur
de bus
AGP
Bus AGP
Contrleur
graphique
Bus local
Carte
d'extension
Carte
d'extension
Bus PCI
18
2014,2016 F. Pellegrini
19
20
Registres
Chaque registre peut stocker une valeur
entire distincte, borne par la taille des
registres (nombre de bits)
Certains registres sont spcialiss, comme :
le compteur ordinal ( program counter ) qui
stocke l'adresse de la prochaine instruction
excuter
le registre d'instruction ( instruction register ),
qui stocke l'instruction en cours d'excution
l'accumulateur, registre rsultat de l'UAL, etc.
2014,2016 F. Pellegrini
21
22
Registres gnraux
A
B
Registres
d'entre de l'UAL
UAL
A+B
2014,2016 F. Pellegrini
Registre de sortie
de l'UAL
23
2014,2016 F. Pellegrini
24
2014,2016 F. Pellegrini
25
Langages d'application
Traduction (compilateur)
Langage d'assemblage
Traduction (assembleur)
Systme d'exploitation
Interprtation partielle (SE)
Jeu d'instructions
Interprtation ou excution
Microarchitecture
Matriel
Logique numrique
26
27
Couche microarchitecture
On dispose ce niveau de plusieurs registres
mmoire et d'un circuit appel UAL (Unit
Arithmtique et Logique, ALU) capable de
raliser des oprations arithmtiques
lmentaires
Les registres sont relis l'UAL par un chemin
de donnes permettant d'effectuer des
oprations arithmtiques entre registres
Le contrle du chemin de donnes est soit
microprogramm, soit matriel
2014,2016 F. Pellegrini
28
2014,2016 F. Pellegrini
29
30
2014,2016 F. Pellegrini
31
2014,2016 F. Pellegrini
32
33
Circuits logiques
Un circuit logique est un circuit qui ne
manipule que deux valeurs logiques : 0 et 1
l'intrieur des circuits, on reprsente
typiquement un tat 0 par un signal de basse
tension (proche de 0V) et un tat 1 par un
signal de haute tension (5V, 3,3V, 2,5V, 1,8V
ou 0,9V selon les technologies)
De minuscules dispositifs lectroniques,
appeles portes , peuvent calculer
diffrentes fonctions partir de ces signaux
2014,2016 F. Pellegrini
34
Transistors (1)
L'lectronique numrique repose sur le fait
qu'un transistor peut servir de commutateur
logique extrmement rapide
Deux technologies majeures :
Bipolaire : temps de commutation trs rapide
mais consommation leve
Registres, SRAM, circuits spcialiss
Transistors (2)
Avec un transistor bipolaire ou deux
transistors CMOS, on peut crer un premier
circuit combinatoire :
Grille
+Vcc
Source
+Vcc
Drain
Collecteur
VS
VA
VS
VA
Base
2014,2016 F. Pellegrini
Drain
metteur
Bipolaire
Source
Grille
CMOS
36
Transistors (3)
Quand VA est bas, VS est haut
+Vcc
+Vcc
VS
VA
VS
VA
2014,2016 F. Pellegrini
37
Transistors (4)
Quand VA est bas, VS est haut
Quand VA est haut, VS est bas
Ce circuit est un inverseur
+Vcc
+Vcc
VS
VA
VS
VA
2014,2016 F. Pellegrini
38
Transistors (5)
En combinant quatre
transistors CMOS, on
peut obtenir un circuit
tel que VS n'est dans
l'tat bas que quand
VA et VB sont tous les
deux dans l'tat haut
+Vcc
VA
VB
VS
VA
VB
2014,2016 F. Pellegrini
39
Transistors (6)
+Vcc
En combinant quatre
transistors CMOS, on
peut obtenir un circuit
tel que VS est dans
l'tat bas si VA ou VB,
VA
VB
VS
2014,2016 F. Pellegrini
VB
40
A
0
1
S
1
0
NON
2014,2016 F. Pellegrini
A
B
A
0
0
1
1
B
0
1
0
1
NAND
S
1
1
1
0
A
B
A
0
0
1
1
B
0
1
0
1
S
1
0
0
0
NOR
41
Algbre boolenne
Pour dcrire les circuits ralisables en
combinant des portes logiques, on a besoin
d'une algbre oprant sur les variables 0 et 1
Algbre boolenne
G. Boole : 1815 1864
Algbre binaire tudie par Leibniz ds 1703
2014,2016 F. Pellegrini
43
2014,2016 F. Pellegrini
44
2014,2016 F. Pellegrini
45
2014,2016 F. Pellegrini
46
47
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
2014,2016 F. Pellegrini
M
0
0
0
1
0
1
1
1
A B C
48
2014,2016 F. Pellegrini
49
50
2014,2016 F. Pellegrini
51
2014,2016 F. Pellegrini
52
Forme AND
Forme OR
Identit
1A = A
0+A=A
Nul
0A = 0
1+A=1
Idempotence
AA = A
A+A=A
Inverse
AA = 0
A+A=1
AB = BA
A+B=B+A
Associativit
(AB)C = A(BC)
(A + B) + C = A + (B + C)
Distributivit
A + BC = (A + B)(A + C)
A(B + C) = AB + AC
Absorbtion
A(A + B) = A
A + AB = A
De Morgan
AB = A + B
A+B=AB
Commutativit
2014,2016 F. Pellegrini
53
54
2014,2016 F. Pellegrini
A
0
0
1
1
B
0
1
0
1
XOR
X
0
1
1
0
55
A XOR B
A
B
A
B
A XOR B
A
B
A
B
A
B
2014,2016 F. Pellegrini
A XOR B
56
57
Fonctions combinatoires
Une fonction combinatoire est une fonction
possdant des entres et des sorties multiples,
telles que les valeurs des sorties ne dpendent
que des valeurs d'entre
Cette classe comprend les fonctions telles que :
Dcodeurs
Multiplexeurs
Comparateurs
...
2014,2016 F. Pellegrini
58
Dcodeur (1)
Un dcodeur est une fonction qui prend un
nombre binaire C n bits en entre et se sert
de celui-ci pour slectionner l'une de ses 2n
sorties Si
2014,2016 F. Pellegrini
59
Dcodeur (2)
S0
S1
S2
C2
S3
S4
C1
S5
S6
C0
2014,2016 F. Pellegrini
S7
60
Multiplexeur (1)
Un multiplexeur est une fonction possdant
2n entres de donnes Di, une unique sortie
et n entres de contrle Cj servant
slectionner l'une des entres
La valeur de l'entre slectionne est
rpercute (route) sur la sortie
Les n entres de contrle codent un nombre
binaire n bits C spcifiant le numro de
l'entre slectionne
2014,2016 F. Pellegrini
61
Multiplexeur (2)
D0
D1
D2
D3
F
D4
D5
D6
D7
2014,2016 F. Pellegrini
C2
C2
C1
C1
C0
C0
62
Multiplexeur (3)
Implantation d'un multiplexeur partir d'un
dcodeur
S
0
S1
S2
S3
S4
S5
S6
S7
2014,2016 F. Pellegrini
C2
C1
C0
D0
D1
D2
D3
D4
D5
D6
D7
63
Multiplexeur (4)
Utilisation d'un multiplexeur pour implanter la
fonction majorit
D
0
D1
D2
D3
F
D4
D5
D6
D7
VCC
2014,2016 F. Pellegrini
C2
C1
C0
64
Comparateur (1)
Un comparateur est une fonction qui
compare deux mots et qui produit 1 s'ils sont
gaux bit bit ou 0 sinon
On le construit partir de portes XOR, qui
produisent 1 si deux bits en regard sont
diffrents
2014,2016 F. Pellegrini
65
Comparateur (2)
A0
B0
A1
B1
A=B
A2
B2
A3
B3
2014,2016 F. Pellegrini
66
Fonctions arithmtiques
Les fonctions arithmtiques sont des
fonctions logiques reprsentant des
oprations arithmtiques simples telles que :
Additionneur
Dcaleur
Unit arithmtique et logique
2014,2016 F. Pellegrini
67
Additionneur (1)
Tous les processeurs disposent d'un ou
plusieurs circuits additionneurs
Ces additionneurs sont implants partir de
fonctions appeles demi-additionneurs
A
0
0
1
1
B
0
1
0
1
C
0
0
0
1
S
0
1
1
0
A
B
S
C
S : Somme
C : Retenue ( carry )
2014,2016 F. Pellegrini
68
Additionneur (2)
En fait, pour additionner deux bits situs au
milieu d'un mot, il faut aussi prendre en compte
la retenue provenant de l'addition du bit
prcdent et propager sa retenue au bit suivant
1 1
1 0 0 1 1 0 1 0
+
0 1 0 1 1 0 0 1
1 1 1 1 0 0 1 1
2014,2016 F. Pellegrini
69
Additionneur (3)
On utilise donc deux demi-additionneurs pour
raliser une tranche d'additionneur complet
A
0
0
1
1
0
0
1
1
B
0
1
0
1
0
1
0
1
Cin Cout S
0 0 0
0 0 1
0 0 1
0 1 0
1 0 1
1 1 0
1 1 0
1 1 1
2014,2016 F. Pellegrini
Cin
A
B
Cout
70
2014,2016 F. Pellegrini
71
AB
INVA
A
A+B
ENA
B
_
B
ENB
Unit
logique
...Multiplexeur
F0
F1
Additionneur
Dcodeur d'un...
2014,2016 F. Pellegrini
Cout
72
2014,2016 F. Pellegrini
A4 B4
A3 B3
A2 B2
A1 B1
A0 B0
UAL
1 bit
UAL
1 bit
UAL
1 bit
UAL
1 bit
UAL
1 bit
UAL
1 bit
X5
X4
X3
X2
X1
X0
73
2014,2016 F. Pellegrini
74
2014,2016 F. Pellegrini
A4 B4
A3 B3
A2 B2
A1 B1
A0 B0
UAL
1 bit
UAL
1 bit
UAL
1 bit
UAL
1 bit
UAL
1 bit
UAL
1 bit
X5
X4
X3
X2
X1
X0
75
Horloge (1)
Dans de nombreux circuits numriques, il est
essentiel de pouvoir garantir l'ordre dans
lequel certains vnements se produisent
Deux vnements doivent absolument avoir lieu
en mme temps
Deux vnements doivent absolument se produire
l'un aprs l'autre
98 % des circuits numriques sont synchrones
76
Horloge (2)
Une horloge est un circuit qui met de faon
continue une srie d'impulsions caractrises
par :
La longueur de l'impulsion
L'intervalle entre deux pulsations successives,
appel temps de cycle de l'horloge
Longueur d'impulsion
Temps de cycle
2014,2016 F. Pellegrini
77
C2
78
2014,2016 F. Pellegrini
79
80
Mmoire (1)
La mmoire principale sert au stockage des
programmes et de leurs donnes
L'unit lmentaire de mmoire est le bit,
pour binary digit ( chiffre binaire ),
prenant deux valeurs, 0 ou 1
Le stockage physique des bits dpend des
technologies employes : diffrentiels de
tension, moments magntiques, cuvettes ou
surfaces planes, mission de photons ou
non, etc.
2014,2016 F. Pellegrini
81
Mmoire (2)
Pour stocker les informations, il faut un circuit
capable de se souvenir de la dernire valeur
d'entre qui lui a t fournie
la diffrence d'une fonction combinatoire, sa
valeur ne dpend donc pas que de ses valeurs
d'entre courantes
Prsence de boucles de rtroaction pour prserver
l'tat courant
82
Bascule SR
Une bascule SR est une fonction qui a deux
entres et deux sorties
Une entre S pour positionner la bascule
Une entre R pour rinitialiser la bascule
Deux sorties Q et Q complmentaires l'une de
l'autre
S
Q
R
2014,2016 F. Pellegrini
Q
83
Bascule SR tat 0
Si S et R valent 0, et que Q vaut 0, alors :
Q vaut 1
Les deux entres de la porte du bas sont 0 et 1,
donc Q vaut 0
0
0
1
R
2014,2016 F. Pellegrini
Q
84
Bascule SR tat 1
Si S et R valent 0, et que Q vaut 1, alors :
Q vaut 0
Les deux entres de la porte du bas sont 0 et 0,
donc Q vaut 1
0
1
0
R
2014,2016 F. Pellegrini
Q
85
R
2014,2016 F. Pellegrini
0
Q
Q
86
Bascule SR Mise 1
Lorsque S vaut 1, que Q vaille 0 ou 1 :
La sortie de la porte du haut vaut 0, donc Q vaut 0
La sortie de la porte du bas vaut 1, donc Q vaut 1
Cet tat est stable
1
0
2014,2016 F. Pellegrini
1
1
0
Q
Q
87
Bascule SR Mise 0
Lorsque R vaut 1, que Q vaille 0 ou 1 :
La sortie de la porte du bas vaut 0, donc Q vaut 0
La sortie de la porte du haut vaut 1, donc Q vaut 1
Cet tat est stable
0
0
1
R
2014,2016 F. Pellegrini
0
1
Q
88
2014,2016 F. Pellegrini
89
0
2014,2016 F. Pellegrini
Q
90
Bascule D (1)
Pour viter cela, on n'a qu'un seul signal D
Destin l'entre S, et que l'on inverse pour R
On commande la bascule par un signal d'activation
91
Bascule D (2)
Pour que l'on soit sr que la valeur conserve
en mmoire soit bien celle prsente en dbut
de cycle d'criture, il faudrait n'autoriser
l'criture qu'au dbut du cycle, sur le front
montant du signal d'criture
a
b
CK
b
c
c
d
2014,2016 F. Pellegrini
92
Bascule D (3)
Il existe ainsi plusieurs types de bascules D :
Active par CK l'tat haut
_
CK Q
_
CK Q
_
CK Q
_
CK Q
2014,2016 F. Pellegrini
93
2014,2016 F. Pellegrini
94
2014,2016 F. Pellegrini
95
96
A0
D Q
DQ
DQ
CK
CK
CK
D Q
D Q
D Q
CK
CK
CK
D Q
D Q
D Q
CK
CK
CK
D Q
D Q
D Q
CK
CK
CK
A1
CS
RD
OE
2014,2016 F. Pellegrini
O0-O2
97
Types de mmoire
Plusieurs critres caractrisent les mmoires
Type d'accs
Accs alatoire : RAM R/W, (((E)E)P)ROM, Flash
FIFO : registres dcalage
Possibilit d'criture
Pas : ROM
Unique : PROM
Multiple : RAM R/W, (E)EPROM, Flash
Volatilit
Les donnes stockes ne sont conserves que tant que
la mmoire est alimente lectriquement
2014,2016 F. Pellegrini
99
2014,2016 F. Pellegrini
100
RAM dynamique
Base sur des petits condensateurs, moins gourmands
en place et en consommation lectrique
Ncessite un rafrachissement rgulier des charges
Mmoire ROM
Read Only Memory ( Mmoire morte )
Les donnes stockes perdurent mme quand la
mmoire n'est pas alimente
Le contenu, fig la fabrication, ne peut plus tre
modifi d'aucune faon
Analogue l'implantation d'une fonction
boolenne dpendant des valeurs d'adresses
fournies
102
Mmoire PROM
Programmable ROM
Les ROMs sont trop longues faire fabriquer
par rapport aux cycles de dveloppement des
quipements
La PROM, livre vierge (tous bits 1), peut
tre programme avec un quipement adapt
Destruction de mini-fusibles par surtension
Une seule criture possible
2014,2016 F. Pellegrini
103
Mmoire EPROM
Les mmoires PROM sont encore trop chres
Grande consommation lors des phases de
dveloppement
104
2014,2016 F. Pellegrini
105
106
Paradigmes architecturaux
L'augmentation continuelle de la vitesse de
traitement du cycle du chemin de donnes
provient de la mise en oeuvre d'un ensemble
de principes gnraux de conception efficaces
Simplification des jeux d'instructions
Utilisation du paralllisme au niveau des
instructions ( Instruction-Level Parallelism , ou
ILP)
Apparition des architectures multi-curs
2014,2016 F. Pellegrini
107
108
Micro-architecture (1)
La couche micro-architecture implmente le jeu
d'instructions spcifi par la couche
d'architecture du jeu d'instructions (ISA) en
s'appuyant sur la couche la logique numrique
La conception de la micro-architecture dpend
du jeu d'instruction implmenter, mais aussi
du cot et des performances souhaits
Jeux d'instructions plus ou moins complexes
(RISC/CISC)
Utilisation de l'ILP ( Instruction-Level Parallelism )
2014,2016 F. Pellegrini
110
Micro-architecture (2)
L'excution d'une instruction peut se
dcomposer en plusieurs sous-tapes
Recherche ( Fetch )
tant donn l'adresse de la prochaine instruction
excuter, rcupration de l'instruction
Decodage ( Decode )
Dtermination du type et de la nature des oprandes
Excution ( Execute )
Mise en oeuvre des units fonctionnelles
Terminaison ( Complete )
111
Micro-architecture (3)
On peut imaginer la conception du niveau
micro-architecture comme un problme de
programmation
Chaque instruction du niveau ISA est une fonction
Le programme matre (micro-programme) est une
boucle infinie qui dtermine chaque tour la bonne
fonction appeler et l'excute
Le micro-programme dispose de variables d'tat
accessibles par chacune des fonctions, et modifies
spcifiquement selon la nature de la fonction
Compteur ordinal, registres gnraux, etc.
2014,2016 F. Pellegrini
112
Registre d'instruction
Mmoire du
micro-code
(implmentation
en un seul cycle)
2014,2016 F. Pellegrini
Chemin de
donnes
Mmoire
(implmentation
en un seul cycle)
113
Instructions (1)
Chaque instruction est compose d'un ou
plusieurs champs
Le premier, appel opcode , code le type
d'opration ralise par l'instruction
Opration arithmtique, branchement, etc.
lire
ou
crire,
etc.
2014,2016 F. Pellegrini
114
Instructions (2)
Exemple : format des instructions RISC MIPS
Type R (registre)
31
26 25
opcode
21 20
rs
16 15
rt
11 10
rd
6 5
shamt
26 25
opcode
21 20
rs
immediate
Type J (branchement)
31
26 25
31
26 25
opcode
2014,2016 F. Pellegrini
func
16 15
rt
adresse
115
Xra
Clk
Zdi
Imm value
tendue 32b
Yra
Zwa
Registres
32 registres
32 bits
_
r/w
msel
32
Xdo
32
Ydo
Adresses
32
ALS
32
st enable
imm enable
wr enable
B
UAL
LF
4
ST
Mmoire
SD
_
a/s
32
Donnes
00
01
10
11
ALS
: Arithmtique
: Logique
: Dcalage
: Desactive
2014,2016 F. Pellegrini
LF
0001 : AND
0011 : A
0101 : B
0110 : XOR
0111 : OR
00
01
10
11
ST
: Pas de dcalage
: Arithmtique
: Logique
: Rotation
ld enable
SD
0 : Dcalage gauche
1 : Dcalage droite
a/s
0 : Ajoute
1 : Soustrait
116
"" # $
" $
$
!
2014,2016 F. Pellegrini
117
des x86
Chaque micro-instruction
S'excute en un cycle lmentaire
Spcifie exactement les signaux de contrle des
diffrentes units fonctionnelles
est 0x58
Registre
interne X
Opcode
2014,2016 F. Pellegrini
tat initial
Adresse de la premire
instruction dans la
mmoire du micro-code
Bit de fin
Signaux de contrle d'instruction
ST [RSP],R[X]
ADDI SP,2
0
1
SUBI SP,2
LD R[X],[RSP]
0
1
Mmoire du micro-code
119
Registre d'instruction
Registre d'tat
Lignes de contrle
du chemin de donnes
2014,2016 F. Pellegrini
120
Pile (1)
Presque tous les langages de programmation
incluent le concept de procdure disposant de
paramtres d'appel et de variables locales
Ces variables peuvent tre accdes pendant
l'excution de la procdure mais pas depuis la
procdure appelante
Elles ne peuvent rsider une adresse absolue en
mmoire, car cela empcherait la rentrance
121
Pile (2)
Une pile est une zone de la mmoire que l'on
n'accde jamais de faon absolue mais
toujours relativement un registre
Gre au moyen d'un registre ddi, le
pointeur de pile ( Stack Pointer , ou SP)
Pointe sur le dernier mot mmoire allou
Instructions ddies l'empilage et au dpilage :
De donnes : push/pop
D'adresses de retour : call/ret
2014,2016 F. Pellegrini
122
123
125
2014,2016 F. Pellegrini
126
Dcalage
Masquage
OU logique
criture
+
2014,2016 F. Pellegrini
ADC
ADC
ADD
+
128
129
131
2014,2016 F. Pellegrini
132
133
ou
134
135
Instr.
Instr.
Instr.
Instr.
Instr.
Instr.
Instr.
Instr.
Instr.
Instr.
Instr.
Instr.
Instruction
Instr. Ins. Ins.
Instruction
X86 (32 bits : IA-32)
136
2014,2016 F. Pellegrini
137
Modes d'adressage
Les modes d'adressage sont les diffrentes
manires dont on peut accder aux oprandes
des instructions
Adressage immdiat
Adressage direct
Adressage registre
Adressage indirect par registre
Adressage index
Adressage bas index
2014,2016 F. Pellegrini
138
Adressage immdiat
Le plus simple pour une instruction est que sa
partie d'adresse contienne directement la valeur
de l'oprande
Rserv aux constantes
Aucun accs mmoire supplmentaire ncessaire
Exemples
Branchements : l'adresse (dplacement relatif ou
absolu) est spcifie dans le corps de l'instruction :
Chargement de registres :
2014,2016 F. Pellegrini
139
Adressage direct
Une mthode pour accder une valeur en
mmoire consiste donner son adresse pour
qu'on puisse y accder directement
On accdera toujours la mme zone mmoire
Rserv aux variables globales dont les
adresses sont connues la compilation
2014,2016 F. Pellegrini
140
Adressage registre
Conceptuellement quivalent l'adressage
direct, mais on spcifie un numro de registre
plutt qu'un numro de mot mmoire
Mode le plus couramment utilis
Les accs aux registres sont trs rapides
Les numros de registres se codent sur peu de bits
(compacit des instructions plusieurs adresses)
141
142
Adressage index
Ce mode combine les caractristiques de
l'adressage direct et de l'adressage registre
L'oprande considr est localis une
distance fixe de l'adresse fournie par un registre
Les champs de l'instruction sont le numro du
registre ainsi que le dplacement relatif ( offset )
ajouter son contenu
143
144
Types d'instructions
Les instructions de la couche ISA peuvent
tre groupes en une demi-douzaine de
classes, que l'on retrouve sur toutes les
architectures
Copie de donnes
Calcul
Branchements, branchements conditionnels et
comparaisons
Entres/sorties et interruptions
Gestion de la mmoire
2014,2016 F. Pellegrini
145
146
remplaant la squence
, par exemple
147
148
149
2014,2016 F. Pellegrini
150
2014,2016 F. Pellegrini
151
Instructions d'entre/sortie
Diffrent considrablement selon l'architecture
Mettent en uvre un ou plusieurs parmi trois
schmas d'E/S diffrents
E/S programmes avec attente de disponibilit
Trs coteux car le processeur ne fait rien en attendant
Cas des instructions IN et OUT de l'architecture x86
153
154
155
156
157
Espace d'adressage
La plupart des couches ISA considrent la
mmoire comme un espace linaire et continu
commenant de l'adresse 0 l'adresse 232-1
64
ou 2 -1
En pratique, on n'utilise pas plus de 44 fils
d'adresses (adressage de 16 TraMots)
2014,2016 F. Pellegrini
159
160
161
CS
AH
AL
EAX
DS
BX
BH
BL
EBX
ES
CX
CH
CL
ECX
FS
DX
DH
DL
EDX
GS
ESI
SS
EDI
EIP
EBP
EFLAGS
ESP
32
162
Bits
0-5
Prfixe
6
Instruction
1-2
Opcode
0-1
Mode
0-1
SIB
1 1
0-4
Dplacement
2
Scale
3
Index
0-4
Immdiat
3
Base
2
Mod
2014,2016 F. Pellegrini
3
Reg
3
R/M
163
164
D Q
D Q
CK
D Q
CK
D Q
CK
D Q
CK
D Q
CK
D Q
CK
D Q
CK
D Q
CK
D Q
CK
D Q
CK
CK
CK
165
166
167
Pipe-line (1)
Lorsqu'un mme traitement se rpte dans le
temps, et peut tre dcoup en sous-tches
lmentaires, on peut mettre en place une
chane de traitement appele pipe-line
Le nombre de sous-units fonctionnelles est
appel nombre d'tages du pipe-line
Unit fonctionnelle non pipeline
168
Pipe-line (2)
Exemple : le lavomatique
Lavage : 30 minutes
Schage : 40 minutes
Pliage : 20 minutes
L
L
S
S
L
2014,2016 F. Pellegrini
P
P
S
L
S
P
S
L
P
P
169
Pipe-line (3)
Trois conditions sont ncessaires la bonne
mise en uvre d'un pile-line :
Une mme opration doit tre rpte dans le
temps
Cette opration doit pouvoir tre dcompose en
tapes ( stages , improprement traduit en
tages ) indpendantes
La dure de ces tages doit tre peu prs la
mme
2014,2016 F. Pellegrini
170
Pipe-line (4)
Un pipe-line p tages sort son premier
rsultat aprs p cycles lmentaires, puis un
rsultat par cycle lmentaire
N'est utile que si l'opration se rpte !
2014,2016 F. Pellegrini
171
Pipe-line (5)
Pour isoler les diffrents tages du pipe-line,
on utilise des latches
La frquence de cadencement est limite par
la dure de l'tage le plus long
Il faut y ajouter cette dure le temps de
traverse du latch associ
2014,2016 F. Pellegrini
172
Pipe-line (6)
Soient :
T le temps de traverse du circuit non pipe-lin
p la profondeur du pipe-line (nombre d'tages)
Le temps de traverse d'un latch
173
Pipe-line (7)
L'efficacit du pipe-line est donc gale :
n.T / ((n + p - 1)(T / p + ))
L'efficacit maximale thorique d'un pipe-line
quilibr de profondeur p :
Est strictement infrieure p
Intrt d'augmenter p pour augmenter l'efficacit du
pipe-line
Revient augmenter le degr de paralllisme du circuit
petit devant T / p
174
2014,2016 F. Pellegrini
175
176
2014,2016 F. Pellegrini
177
2014,2016 F. Pellegrini
178
179
add r1,r2,r4
...
add r1,r2,r3
mov [A],r1
Dpendance de
rsultat
Dpendance de
contrle
add r2,r3,r1
bz r4,etiq
div r1,r4,r1
mov [A],r1
2014,2016 F. Pellegrini
Anti-dpendance
etiq:
...
180
2014,2016 F. Pellegrini
M WB
F
M WB
181
M WB
M WB
182
Superscalarit
Afin d'augmenter le nombre d'instructions
traites par unit de temps, on fait en sorte
que le processeur puisse lire et excuter
plusieurs instructions en mme temps
Problmes de dpendances entre instructions
Entrelacement de code effectu par le
compilateur
Rordonnancement dynamique des instructions
par le processeur (excution out of order )
2014,2016 F. Pellegrini
183