You are on page 1of 183

Architecture des ordinateurs

(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
Elles sont bases sur l'interaction entre :
Des programmes, aussi appels logiciels,
dcrivant des processus de traitement de
l'information : biens immatriels
Des ordinateurs, capables d'excuter ces
programmes : biens matriels
2014,2016 F. Pellegrini 2
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
Ce sont souvent des reprsentations deux
tats, c'est--dire binaires
2014,2016 F. Pellegrini 3
Constituants lmentaires (1)
Presque tous les ordinateurs sont construits
base de circuits lectroniques
Les circuits lectroniques sont raliss au
moyen de transistors
Composant lmentaire, dont le courant de sortie
dpend de deux valeurs d'entre
Un transistor a donc trois pattes
Appeles : base, metteur et collecteur
Analogue un robinet lectricit : plus il
arrive de courant sur la base, plus le courant
circule de l' metteur vers le collecteur
2014,2016 F. Pellegrini 4
Constituants lmentaires (2)
Dans les ordinateurs, on utilise les transistors
en mode satur, c'est--dire tout ou rien
Fonctionnement analogue celui d'un interrupteur
Robinet ferm ou ouvert en grand
Soit le courant passe, soit il ne passe pas du tout
Reprsentation des valeurs binaires 0 et 1
En combinant plusieurs transistors, on peut
effectuer des calculs complexes
Sur la base de montages en srie ou en parallle
Regroupement
2014,2016 F. Pellegrini
au sein de circuits intgrs 5
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 6
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
On pense souvent que la puissance d'un
ordinateur dpend de sa frquence de
fonctionnement
C'est loin d'tre toujours vrai !
http://en.wikipedia.org/wiki/Instructions_per_second
2014,2016 F. Pellegrini 7
volutions architecturales (1)
1946 : Ordinateur ENIAC
Architecture base de lampes et tubes vide : 30
tonnes, 170 m2 au sol, 5000 additions par seconde
0,005 MIPS, dirons-nous...
1947 : Invention du transistor
1958 : Invention du circuit intgr sur silicium
Multiples transistors agencs sur le mme substrat

2014,2016 F. Pellegrini 8
volutions architecturales (2)
1971 : Processeur Intel 4004
2300 transistors dans un unique circuit intgr
Frquence de 740 kHz, 0,092 MIPS
40 ans d'une histoire trs riche...
2011 : Processeur Intel Core i7 2600K
Plus de 1,4 milliards de transistors
Frquence de 3,4 GHz
4 curs, 8 threads
128300 MIPS http://en.wikipedia.org/wiki/Sandy_Bridge
2014,2016 F. Pellegrini 9
volutions architecturales (3)
Entre le 4004 et le Core i7 2600K :
La frquence a t multiplie par 4600
La puissance en MIPS a t multiplie par 1,4 million
La puissance d'un ordinateur ne dpend
clairement pas que de sa frquence !
Intrt d'tudier l'architecture des ordinateurs
pour comprendre :
O les gains se sont oprs
Ce qu'on peut attendre dans le futur proche
2014,2016 F. Pellegrini 10
Barrire de la chaleur (1)
Plus on a de transistors par unit de surface,
plus on a d'nergie vacuer
La dissipation thermique volue de faon
proportionnelle V2*F
La tension de fonctionnement des circuits a t
abaisse
De 5V pour les premires gnrations 0,9V maintenant
Il n'est plus vraiment possible de la diminuer avec
les technologies actuelles
Le bruit thermique causerait trop d'erreurs
2014,2016 F. Pellegrini 11
Barrire de la chaleur (2)
La frquence ne peut raisonnablement
augmenter au del des 5 GHz
Barrire de la chaleur
La tendance est plutt la rduction
Green computing
On s'intresse maintenant maximiser le nombre
d'oprations par Watt
Mais on veut toujours plus de puissance de calcul !

2014,2016 F. Pellegrini 12
Barrire de la complexit (1)
surface constante, le nombre de transistors
double tous les 2 ans
Loi de Moore , du nom de Gordon Moore, co-
fondateur d'Intel, nonce en 1965
Diminution continuelle de la taille de gravage des
transistors et circuits sur les puces de silicium
On grave actuellement avec un pas de 14 nm
Limites atomiques bientt atteintes...
Donc plus possible d'intgrer plus
Mais on veut toujours plus de puissance de calcul !
2014,2016 F. Pellegrini 13
Barrire de la complexit (2)
Que faire de tous ces transistors ?
On ne voit plus trop comment utiliser ces transistors
pour amliorer individuellement les processeurs
Des processeurs trop complexes consomment trop
d'nergie sans aller beaucoup plus vite
Seule solution actuellement : faire plus de
processeurs sur la mme puce !
Processeurs bi-curs, quadri-coeurs, octo-curs,
dj jusqu' 128 curs !
Mais comment les programmer efficacement ?!
2014,2016 F. Pellegrini 14
Barrire de la complexit (3)
L'architecture des ordinateurs a t l'un des
secteurs de l'informatique qui a fait le plus de
progrs
Les ordinateurs d'aujourd'hui sont trs
complexes
Plus d'un milliard de transistors dans un processeur
Ncessit d'tudier leur fonctionnement
diffrents niveaux d'abstraction
Du composant au module, du module au systme
Multiples niveaux de hirarchie
2014,2016 F. Pellegrini 15
Structure d'un ordinateur (1)
Un ordinateur est une machine programmable
de traitement de l'information
Pour accomplir sa fonction, il doit pouvoir :
Acqurir de l'information de l'extrieur
Stocker en son sein ces informations
Combiner entre elles les informations sa
disposition
Restituer ces informations l'extrieur

2014,2016 F. Pellegrini 16
Structure d'un ordinateur (2)
L'ordinateur doit donc possder :
Une ou plusieurs units de stockage, pour
mmoriser le programme en cours d'excution
ainsi que les donnes qu'il manipule
Une unit de traitement permettant l'excution
des instructions du programme et des calculs sur
les donnes qu'elles spcifient
Diffrents dispositifs priphriques servant
interagir avec l'extrieur : clavier, cran, souris,
carte graphique, carte rseau, etc.

2014,2016 F. Pellegrini 17
Structure d'un ordinateur (3)
Les constituants de l'ordinateur sont relis
par un ou plusieurs bus, ensembles de fils
parallles servant la transmission des
adresses, des donnes, et des signaux de
contrle Mmoire
graphique
Unit de Contrleur
Mmoire Contrleur
traitement de bus
centrale graphique
(processeur) AGP Bus AGP

Bus local
Contrleur Contrleur
de disque de bus
dur IDE/ATA PCI Bus PCI
Carte Carte
d'extension d'extension
2014,2016 F. Pellegrini 18
Unit de traitement (1)
L'unit de traitement (ou CPU, pour Central
Processing Unit ), aussi appele
processeur , est le cur de l'ordinateur
Elle excute les programmes chargs en
mmoire centrale en extrayant l'une aprs
l'autre leurs instructions, en les analysant, et
en les excutant

2014,2016 F. Pellegrini 19
Unit de traitement (2)
L'unit de traitement est compos de plusieurs
sous-ensembles distincts
L'unit de contrle, qui est responsable de la
recherche des instructions partir de la mmoire
centrale et du dcodage de leur type
L'unit arithmtique et logique (UAL), qui effectue
les oprations spcifies par les instructions
Un ensemble de registres, zones mmoires rapides
servant au stockage temporaire des donnes en
cours de traitement par l'unit centrale

2014,2016 F. Pellegrini 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
Chemin de donnes (1)
Le chemin de donnes reprsente la structure
interne de l'unit de traitement
Comprend les registres, l'UAL, et un ensemble de
bus internes ddis
L'UAL peut possder ses propres registres destins
mmoriser les donnes d'entres afin de
stabiliser leurs signaux pendant que l'UAL calcule
Le chemin des donnes conditionne fortement
la puissance des machines
Pipe-line, superscalarit,
2014,2016 F. Pellegrini 22
Chemin de donnes (2)
Chemin de donnes d'une machine de type
Von Neumann
A+B

A Registres gnraux
B

A B
Registres
d'entre de l'UAL

UAL

A+B
Registre de sortie
de l'UAL

2014,2016 F. Pellegrini 23
Excution d'une instruction (1)
L'excution d'une instruction par l'unit
centrale s'effectue selon les tapes suivantes :
1 Charger la prochaine instruction excuter depuis
la mmoire vers le registre d'instruction
2 Dcoder (analyser) l'instruction venant d'tre lue
3 Faire pointer le compteur ordinal vers l'instruction
suivante (y compris dans le cas de branchements)
4 Localiser en mmoire les donnes ncessaires
5 Charger si ncessaire les donnes dans l'UAL
6 Excuter l'instruction, puis recommencer
2014,2016 F. Pellegrini 24
Architecture des ordinateurs
Les ordinateurs modernes sont conus
comme un ensemble de couches
Chaque couche reprsente une abstraction
diffrente, capable d'effectuer des oprations
et de manipuler des objets spcifiques
L'ensemble des types de donnes, des
oprations, et des fonctionnalits de chaque
couche est appele son architecture
L'tude de la conception de ces parties est
appele architecture des ordinateurs
2014,2016 F. Pellegrini 25
Machines multi-couches actuelles

5 Langages d'application
Traduction (compilateur)
4 Langage d'assemblage
Traduction (assembleur)
3 Systme d'exploitation
Interprtation partielle (SE)
2 Jeu d'instructions
Interprtation ou excution
1 Microarchitecture
Matriel
0 Logique numrique
2014,2016 F. Pellegrini 26
Couche logique numrique
Les objets considrs ce niveau sont les
portes logiques, chacune construite partir de
quelques transistors
Chaque porte prend en entre des signaux
numriques (0 ou 1) et calcule en sortie une
fonction logique simple (ET, OU, NON)
De petits assemblages de portes peuvent
servir raliser des fonctions logiques telles
que mmoire, additionneur, ainsi que la logique
de contrle de l'ordinateur
2014,2016 F. Pellegrini 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
Couche jeu d'instruction
La couche de l'architecture du jeu
d'instructions (Instruction Set Architecture,
ISA) est dfinie par le jeu des instructions
disponibles sur la machine
Ces instructions peuvent tre excutes par
microprogramme ou bien directement

2014,2016 F. Pellegrini 29
Couche systme d'exploitation
Cette couche permet de bnficier des
services offerts par le systme d'exploitation
Organisation mmoire, excution concurrente
La plupart des instructions disponibles ce
niveau sont directement traites par les
couches infrieures
Les instructions spcifiques au systme font
l'objet d'une interprtation partielle (appels
systme)

2014,2016 F. Pellegrini 30
Couche langage d'assemblage
Offre une forme symbolique aux langages
des couches infrieures
Permet des humains d'interagir avec les
couches infrieures

2014,2016 F. Pellegrini 31
Couche langages d'application
Met la disposition des programmeurs
d'applications un ensemble de langages
adapts leurs besoins
Langages dits de haut niveau

2014,2016 F. Pellegrini 32
Comment aborder tout cela ?
Approches courante : de bas en haut pour
les besoins, puis de haut en bas pour les
solutions
Travaux pratiques difficiles au dbut...
Par deux fronts la fois :
partir de la couche ISA
Programmation en langage machine : y86
partir des transistors et portes logiques
Construction de circuits sur papier

2014,2016 F. Pellegrini 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
CMOS : temps de commutation moins rapide
mais consommation beaucoup moins leve
90 % des circuits sont raliss en CMOS
35
Transistors (2)
Avec un transistor bipolaire ou deux
transistors CMOS, on peut crer un premier
circuit combinatoire :
Grille +Vcc
+Vcc Source

Collecteur Drain
VS VA VS
VA
Drain
Source
Base metteur Grille
2014,2016 F. Pellegrini Bipolaire 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)
+Vcc
En combinant quatre
transistors CMOS, on
peut obtenir un circuit VA VB
tel que VS n'est dans
l'tat bas que quand
VA et VB sont tous les VS

deux dans l'tat haut


VA

VB

2014,2016 F. Pellegrini 39
Transistors (6)
+Vcc
En combinant quatre
transistors CMOS, on VA
peut obtenir un circuit
tel que VS est dans VB
l'tat bas si VA ou VB,
VS
ou bien les deux, sont
dans l'tat haut
VA VB

2014,2016 F. Pellegrini 40
Portes logiques (1)
En identifiant l'tat haut la valeur 1 et l'tat
bas la valeur 0, on peut exprimer la valeur
de sortie de ces trois circuits partir des
valeurs de leurs entres
A A
A S S S
B B

A S A B S A B S
0 1 0 0 1 0 0 1
1 0 0 1 1 0 1 0
1 0 1 1 0 0
1 1 0 1 1 0
NON NAND NOR
2014,2016 F. Pellegrini 41
Portes logiques (2)
Quelle que soit la technologie, les portes NAND
et NOR ncessitent moins de transistors que les
portes AND et OR, qui ncessitent un inverseur
en plus
Les circuits des ordinateurs sont donc plutt
construits avec des portes NAND et NOR
Ces portes ont parfois plus de deux entres, mais en
ont rarement plus de 8 (problme de fan-in/out )
Les portes NAND et NOR sont dites compltes ,
car tout circuit peut tre implant uniquement au
moyen de l'un de ces types de portes
2014,2016 F. Pellegrini 42
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
Fonctions boolennes (1)
Une fonction boolenne une ou plusieurs
variables est une fonction qui renvoie une
valeur ne dpendant que de ces variables
La fonction NON est ainsi dfinie comme :
f(A) = 1 si A = 0
f(A) = 0 si A = 1

2014,2016 F. Pellegrini 44
Fonctions boolennes (2)
Une fonction boolenne n variables a
seulement 2n combinaisons d'entres possibles
Elle peut tre compltement dcrite par une
table 2n lignes donnant la valeur de la fonction
pour chaque combinaison d'entres
Table de vrit de la fonction
Elle peut aussi tre dcrite par le nombre 2n
bits correspondant la lecture verticale de la
colonne de sortie de la table
NAND : 1110, NOR : 1000, AND : 0001, etc.
2014,2016 F. Pellegrini 45
Fonctions boolennes (3)
Toute fonction peut tre dcrite en spcifiant
lesquelles des combinaisons d'entre
donnent 1
On peut donc reprsenter une fonction
logique comme le ou logique (OR) d'un
ensemble de conditions et (AND) sur les
combinaisons d'entre

2014,2016 F. Pellegrini 46
Fonctions boolennes (4)
En notant :
A le NOT de A
A + B le OR de A et B
A.B ou AB le AND de A et B
on peut reprsenter une fonction comme
somme logique de produits logiques
Par exemple :
ABC vaut 1 seulement si A = 1 et B = 0 et C = 1
AB + BC vaut 1 si et seulement si (A = 1 et B = 0)
ou bien (B = 1 et C = 0)
2014,2016 F. Pellegrini 47
Fonctions boolennes (5)
Exemple : la fonction majorit M
A B C A B C

A B C M
A
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
M
1 0 0 0 B

1 0 1 1
1 1 0 1
C
1 1 1 1

2014,2016 F. Pellegrini 48
Fonctions boolennes (6)
Toute fonction logique de n variables peut donc
tre dcrite sous la forme d'une somme logique
d'au plus 2n produits de termes
Par exemple : M = ABC + ABC + ABC + ABC
Cette formulation fournit une mthode directe
pour implanter n'importe quelle fonction
boolenne

2014,2016 F. Pellegrini 49
Simplification de l'implantation (1)
Deux fonctions sont quivalentes si et
seulement si leurs tables de vrit sont
identiques
Il est intressant d'implanter une fonction
avec le moins de portes possible
conomie de place sur le processeur
Rduction de la consommation lectrique
Rduction du temps de parcours du signal
L'algbre boolenne peut tre un outil efficace
pour simplifier les fonctions
2014,2016 F. Pellegrini 50
Simplification de l'implantation (2)
La plupart des rgles de l'algbre ordinaire
restent valides pour l'algbre boolenne
Exemple : AB + AC = A (B + C)
On passe de trois portes deux
Le nombre de niveaux de portes reste le mme

2014,2016 F. Pellegrini 51
Simplification de l'implantation (3)
Pour rduire la complexit des fonctions
boolennes, on essaye d'appliquer des
identits simplificatrices la fonction initiale
Besoin d'identits remarquables pour
l'algbre boolenne

2014,2016 F. Pellegrini 52
Identits boolennes (1)

Nom 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
Commutativit 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
2014,2016 F. Pellegrini 53
Identits boolennes (2)
Chaque loi a deux formes, qui sont duales si
on change les rles respectifs de AND et
OR et de 0 et 1
La loi de De Morgan peut tre tendue plus
de deux termes
ABC = A + B + C
Notation alternative des portes logiques :
Une porte OR avec ses deux entres inverses est
quivalente une porte NAND
Une porte NOR peut tre dessine comme une porte
AND avec ses deux entres inverses
2014,2016 F. Pellegrini 54
Porte XOR (1)
Grce aux identits, il est facile de convertir
la reprsentation en somme de produits en
une forme purement NAND ou NOR
Exemple : la fonction ou exclusif ou XOR
XOR = AB + AB
A B X
0 0 0
A 0 1 1
X
B
1 0 1
1 1 0

2014,2016 F. Pellegrini
XOR 55
Porte XOR (2)
A
B
A XOR B
A
B

A
B
A XOR B
A
B

A
B
A XOR B
A
B
2014,2016 F. Pellegrini 56
Fonctions logiques lmentaires
Pour raliser des circuits logiques complexes,
on ne part pas des portes logiques elles-
mmes mais de sous-ensembles fonctionnels
tels que :
Fonctions combinatoires et arithmtiques
Horloges
L'implantation elle-mme peut se faire
diffrents niveaux d'intgration
PLD, SRAM, ASICs, FPGAs, ...

2014,2016 F. Pellegrini 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

S7
C0

2014,2016 F. Pellegrini 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

D4 F

D5

D6

D7

C2 C2 C1 C1 C0 C0
2014,2016 F. Pellegrini 62
Multiplexeur (3)
Implantation d'un multiplexeur partir d'un
dcodeur S 0
D0

S1
D1

S2
D2
S3
D3
F
S4
D4

S5
D5

S6
D6

S7
D7

C2 C1 C0
2014,2016 F. Pellegrini 63
Multiplexeur (4)
Utilisation d'un multiplexeur pour implanter la
fonction majorit D0

D1

D2

D3
F
D4

D5

D6

D7

VCC
C2 C1 C0
2014,2016 F. Pellegrini 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 B C S A
S
0 0 0 0 B
0 1 0 1
1 0 0 1 C
1 1 1 0
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
Cin
A B Cin Cout S
0 0 0 0 0 A S
0 1 0 0 1 B
1 0 0 0 1
1 1 0 1 0
0 0 1 0 1
0 1 1 1 0
1 0 1 1 0
1 1 1 1 1
2014,2016 F. Pellegrini Cout 70
Unit arithmtique et logique (1)
La plupart des ordinateurs combinent au sein
d'un mme circuit les fonctions arithmtiques
et logiques permettant de calculer l'addition, la
soustraction, le AND ou le OU de deux mots
machines : c'est l'Unit Arithmtique et
Logique
Le type de la fonction a calculer est dtermin
par des entres de contrle

2014,2016 F. Pellegrini 71
Unit arithmtique et logique (2)
Cin
AB
INVA

A A+B

ENA X
_
B B
ENB
Unit
logique

...Multiplexeur

F0

F1
Additionneur

Dcodeur d'un... Cout

2014,2016 F. Pellegrini 72
Unit arithmtique et logique (2)
Pour oprer sur des mots de n bits, l'UAL est
constitue de la mise en srie de n tranches
d'UAL de 1 bit
Pour l'addition, on chane les retenues et on
injecte un 0 dans l'additionneur de poids faible
Ripple Carry Adder , en fait peu efficace
F0-1 A5 B5 A4 B4 A3 B3 A2 B2 A1 B1 A0 B0

UAL UAL UAL UAL UAL UAL


1 bit 1 bit 1 bit 1 bit 1 bit 1 bit
0

X5 X4 X3 X2 X1 X0
2014,2016 F. Pellegrini 73
Additionneur - Soustracteur (1)
En notation complment deux , l'oppos
d'un nombre est obtenu :
En complmentant tous les bits de ce nombre
En ajoutant 1 au rsultat
Soustraire A B revient calculer B+(-A), ce
qui peut se faire :
En ajoutant B au complment de A
En ajoutant 1 au rsultat

2014,2016 F. Pellegrini 74
Additionneur - Soustracteur (2)
L'unit arithmtique et logique dispose dj
de toute la circuiterie ncessaire !
La broche INVA permet d'effectuer la
complmentation des bits de A avant l'addition
Il suffit d'injecter un 1 au lieu d'un 0 dans la
retenue de l'additionneur de poids faible
F0-1 A5 B5 A4 B4 A3 B3 A2 B2 A1 B1 A0 B0

UAL UAL UAL UAL UAL UAL


1 bit 1 bit 1 bit 1 bit 1 bit 1 bit
1

X5 X4 X3 X2 X1 X0
2014,2016 F. Pellegrini 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
Ncessit de disposer d'une horloge pour
synchroniser les vnements entre eux
2014,2016 F. Pellegrini 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
Cycles et sous-cycles (1)
Dans un ordinateur, de nombreux vnements
ont se produire au cours d'un cycle d'horloge
Si ces vnements doivent tre squencs
dans un ordre prcis, le cycle d'horloge doit
tre dcompos en sous-cycles
Un moyen classique pour cela consiste
retarder la copie d'un signal d'horloge primaire
afin d'obtenir un signal secondaire dcal en
phase C1

Retard C2
2014,2016 F. Pellegrini 78
Cycles et sous-cycles (2)
On dispose alors de quatre bases de temps
au lieu de deux
Fronts montant et descendant de C1
Fronts montant et descendant de C2

C1

C2

2014,2016 F. Pellegrini 79
Cycles et sous-cycles (3)
Pour certaines fonctions, on s'intressera
plutt aux intervalles qu' des instants prcis
Action possible seulement lorsque C1 est haut
On peut alors construire des sous-intervalles
en s'appuyant sur les signaux original et
retard
C1

C2

__ __
C3 = C1C2 + C1C2
2014,2016 F. Pellegrini 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
On peut construire un tel circuit partir de deux
portes NAND ou deux portes NOR reboucles
2014,2016 F. Pellegrini 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

Q
R
2014,2016 F. Pellegrini 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
Cette configuration est cohrente et stable
0
S 1
0 Q

1
0
0 Q
R
2014,2016 F. Pellegrini 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
Cette configuration est cohrente et stable
0
S 0
1 Q

0
1
0 Q
R
2014,2016 F. Pellegrini 85
Bascule SR tats stables
Lorsque S et R valent 0 :
On ne peut avoir simultanment Q 0 et Q 0
On ne peut avoir simultanment Q 1 et Q 1
La bascule possde deux tats stables, tels
que Q = 0 ou Q = 1
0
S
Q

0 Q
R
2014,2016 F. Pellegrini 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
Mme lorsque S repasse 0, Q reste 1
1 1
S 1 0 S 0
1 0 Q 1 Q

0 1 0
0 1 1
0 Q 0 Q
R R
2014,2016 F. Pellegrini 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
Mme lorsque R repasse 0, Q reste 0
0 0
S 1 S 0 1
0 Q 0 1 Q

1 1 0
0 1 0
1 Q 1 Q
R R
2014,2016 F. Pellegrini 88
Bascule SR Rsum (1)
Lorsque S vaut temporairement 1, la bascule
se stabilise dans l'tat Q = 1, quel que soit
son tat antrieur
Lorsque R vaut temporairement 1, la bascule
se stabilise dans l'tat Q = 0, quel que soit
son tat antrieur
La fonction mmorise laquelle des entres S
ou R a t active en dernier
Cette fonction peut servir de base la
cration de mmoires
2014,2016 F. Pellegrini 89
Bascule SR Rsum (2)
Cependant, l'tat de la bascule peut tre
indtermin
Lorsque S et R sont simultanment 1, on est
dans un tat stable dans lequel Q et Q valent 0
Lorsque S et R repassent simultanment 0,
l'tat final de la bascule est non prvisible
1
S 0
0 Q

0
0
1 Q
R
2014,2016 F. Pellegrini 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
On a une mmoire 1 bit
D
Q

CK

2014,2016 F. Pellegrini 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
a b
CK d
c c

2014,2016 F. Pellegrini 92
Bascule D (3)
Il existe ainsi plusieurs types de bascules D :
Active par CK l'tat haut D Q

_
CK Q

Active par CK l'tat bas D Q

_
CK Q

Active sur front montant D Q

_
CK Q

Active sur front descendant D Q

_
CK Q

2014,2016 F. Pellegrini 93
Adressage mmoire (1)
Les mmoires informatiques sont organises
comme un ensemble de cellules pouvant
chacune stocker une valeur numrique
Chaque cellule possde un numro unique,
appel adresse, auquel les programmes
peuvent se rfrer
Toutes les cellules d'une mmoire
contiennent le mme nombre de bits
n
Une cellule de n bits peut stocker 2 valeurs
numriques diffrentes
2014,2016 F. Pellegrini 94
Adressage mmoire (2)
Deux cellules mmoire adjacentes ont des
adresses mmoires conscutives
Les ordinateurs, bass sur le systme
binaire, reprsentent galement les adresses
sous forme binaire
Une adresse sur m bits peut adresser 2m
cellules distinctes, indpendamment du
nombre de bits contenus dans chaque cellule

2014,2016 F. Pellegrini 95
Adressage mmoire (3)
La cellule est la plus petite unit mmoire
pouvant tre adresse
Il y a maintenant consensus autour d'une cellule
8 bits, appele octet ( byte en anglais)
Afin d'tre plus efficaces, les units de
traitement ne manipulent plus des octets
individuels mais des mots de plusieurs octets
4 octets par mot pour une machine 32 bits
La plupart des mmoires travaillent aussi par
mots
2014,2016 F. Pellegrini 96
Principe d'un circuit mmoire (1)
I0-I2
D Q DQ DQ
CK CK CK

D Q D Q D Q
CK CK CK
A0
A1

D Q D Q D Q
CK CK CK

D Q D Q D Q
CK CK CK

CS
RD
OE O0-O2
2014,2016 F. Pellegrini 97
Principe d'un circuit mmoire (2)
Mmoire 4 mots de 3 bits
Ce circuit possde trois broches de commande
CS ( chip select ) : actif pour slectionner ce
circuit mmoire
RD ( read ) : positionn 1 si l'on souhaite raliser
une lecture, et 0 si l'on souhaite une criture
OE ( output enable ) : positionn 1 pour activer
les lignes de sortie
Utilise des interrupteurs trois tats (0, 1, dconnect)
Permet de connecter I0-I2 et O0-O2 sur les mmes lignes
de donnes
2014,2016 F. Pellegrini 98
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
Mmoire RAM (1)
Random Access Memory
Les mots de la mmoire peuvent tre accds sur
demande dans n'importe quel ordre
Cette catgorie comprend en thorie toutes
les mmoires accs alatoire telles que
mmoires volatiles, (((E)E)P)ROM, Flash, etc.
Dans le langage courant ce terme est utilis
pour dsigner uniquement la mmoire volatile

2014,2016 F. Pellegrini 100


Mmoire RAM (2)
Varits principales de RAM R/W volatiles
RAM statique
Circuits actifs base de portes logiques reboucles
Conservent leurs valeurs sans intervention particulire
RAM dynamique
Base sur des petits condensateurs, moins gourmands
en place et en consommation lectrique
Ncessite un rafrachissement rgulier des charges
Varits principales de RAM R/W non volatiles
EEPROM, Flash : Stockage par charges lectriques
101
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
Coteuse du fait de la fabrication en petite
srie
2014,2016 F. Pellegrini 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
Les mmoires EPROM peuvent tre rutilises
en les rinitialisant par exposition aux rayons
ultra-violets
Petite fentre en mica sur le botier (mais pastille
adhsive pour viter les UV des tubes fluorescents)
Les mmoires EEPROM et Flash sont
effaables lectriquement
2014,2016 F. Pellegrini 104
Hirarchie mmoire (1)
La mmoire rapide est trs chre, consomme
beaucoup et est donc de taille limite
On rsout ce problme au moyen d'une
hirarchie mmoire

2014,2016 F. Pellegrini 105


Hirarchie mmoire (2)
La hirarchie mmoire fonctionne grce aux
principes de localit :
Localit temporelle : plus un mot mmoire a t
accd rcemment, plus il est probable qu'il soit
r-accd nouveau
Localit spatiale : plus un mot mmoire est
proche du dernier mot mmoire accd, plus il
est probable qu'il soit accd
Les caches tirent parti de ce principe
Sauvegardent les informations les plus
rcemment accdes, en cas de r-accs
2014,2016 F. Pellegrini 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


RISC et CISC (1)
Plus les instructions sont simples dcoder,
plus elles pourront tre excutes rapidement
Aprs une tendance la complexification des
jeux d'instructions ( Complex Instruction Set
Computer , ou CISC), pour conomiser la
mmoire, on a conu nouveau des
processeurs au jeu d'instructions moins
expressif mais pouvant s'excuter beaucoup
plus rapidement ( Reduced Instruction Set
Computer , ou RISC)
2014,2016 F. Pellegrini 108
RISC et CISC (2)
Les architectures RISC se distinguent par un
certain nombre de choix de conception
Toute instruction est traite directement par des
composants matriels (pas de micro-code)
Le format des instructions est simple (mme taille,
peu de types diffrents)
Seules les instructions de chargement et de
sauvegarde peuvent accder la mmoire
Prsence d'un grand nombre de registres
Architecture orthogonale : toute instruction peut
utiliser tout registre : que des registres gnralistes109
2014,2016 F. Pellegrini
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
Schma d'un processeur lmentaire

Compteur ordinal

Registre d'instruction Suivant

Mmoire du
micro-code Chemin de Mmoire
donnes
(implmentation
en un seul cycle)
(implmentation
en un seul cycle)

2014,2016 F. Pellegrini 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.
Les autres champs, optionnels, spcifient les
oprandes de l'instruction
Registres source et destination des donnes
traiter
Adresse
2014,2016 F. Pellegrini
mmoire des donnes lire ou crire, etc.
114
Instructions (2)
Exemple : format des instructions RISC MIPS
Type R (registre)
31 26 25 21 20 16 15 11 10 6 5 0

opcode rs rt rd shamt func

Type I (donne immdiate)


31
31 26 25 21 20
26 25 16 15 21 20 16 15 0

opcode rs rt immediate

Type J (branchement)
31
31 26 25 26 25 0

opcode adresse
2014,2016 F. Pellegrini 115
Contrle du chemin de donnes (1)
_
Imm value imm enable st enable msel r/w
5 5 5 tendue 32b

Xra Yra Zwa 32


Xdo
Clk 32
Registres Ydo Adresses
32 registres 32
Zdi 32 bits
A B ST Mmoire
ALS 2
32 wr enable 2 SD
LF UAL _
a/s
4
32
Donnes

LF ld enable
ALS 0001 : AND ST
00 : Arithmtique 0011 : A 00 : Pas de dcalage _
01 : Logique 0101 : B 01 : Arithmtique SD a/s
10 : Dcalage 0110 : XOR 10 : Logique 0 : Dcalage gauche 0 : Ajoute
11 : Desactive 0111 : OR 11 : Rotation 1 : Dcalage droite 1 : Soustrait
2014,2016 F. Pellegrini 116
Contrle du chemin de donnes (2)
La logique de contrle du micro-code associe
chaque (micro-)instruction un mot binaire
commandant le chemin de donnes
Exemple : mise zro des mots mmoire situs
aux adresses 0x0100 et 0x0104
Signaux de contrle du chemin de donnes

"" "" # $ $ " $


$

! !

2014,2016 F. Pellegrini 117


Interprtation du micro-code (1)
Dans le cas d'un jeu d'instructions de type CISC,
une instruction ISA doit tre traduite en plusieurs
micro-instructions
Cas des instructions des x86
Chaque micro-instruction
S'excute en un cycle lmentaire
Spcifie exactement les signaux de contrle des
diffrentes units fonctionnelles
Ncessit d'un squenceur de micro-instructions
118
Interprtation du micro-code (2)
Exemple figuratif de micro-codage pour
l'instruction du processeur 8086
Code machine 0x50 + n du registre sur 3 bits
Le code de est 0x58 Bit de fin
Signaux de contrle d'instruction
Registre
interne X
ST [RSP],R[X] 0
ADDI SP,2 1

Opcode
tat initial
SUBI SP,2 0
LD R[X],[RSP] 1
Adresse de la premire
instruction dans la
2014,2016 F. Pellegrini mmoire du micro-code Mmoire du micro-code 119
Interprtation du micro-code (3)

Mmoire du Lignes de contrle


micro-code du chemin de donnes
(ROM ou PLA)
Logique
combinatoire

Pas besoin de boucle


ni de registre d'tat si
Registre d'instruction Registre d'tat toutes les instructions
terminent en un
(micro-)cycle

Instruction suivante
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
Ncessit de crer dynamiquement des
instances de ces variables lors des appels de
procdures et de les supprimer la fin
2014,2016 F. Pellegrini 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


Architecture du jeu d'instructions (1)
La couche ISA ( Instruction Set Architecture )
dfinit l'architecture fonctionnelle de l'ordinateur
Sert d'interface entre les couches logicielles et
le matriel sous-jacent
Dfinit le jeu d'instructions utilisable pour coder
les programmes, qui peut tre :
Directement implment de faon matrielle
Pas de registre d'tat interne servant de compteur ordinal
pour l'excution des micro-instructions
Implment sous forme micro-programme
2014,2016 F. Pellegrini 123
Architecture du jeu d'instructions (2)
Le jeu d'instructions est indpendant de
considrations d'implmentation telles que
superscalarit, pipe-lining, etc.
Libert d'implmentation en fonction des cots de
conception et de fabrication, de la complexit de
ralisation, et donc du cot souhait
Dfinition de familles de processeurs en fonction des
applications vises (du tlphone portable au super-
calculateur)
Ncessit pour le compilateur de connatre
l'implmentation de la machine cible pour gnrer
du code efficace
2014,2016 F. Pellegrini 124
Types de donnes (1)
Le niveau ISA dfinit les types de donnes
grs nativement par le jeu d'instructions
Autorise l'implmentation matrielle des types
considrs
Dfinit la nature (entier, flottant, caractre) et la
prcision des types supports
Le programmeur n'est pas libre de choisir le
format de ses donnes s'il veut bnficier du
support matriel offert par la couche ISA

2014,2016 F. Pellegrini 125


Types de donnes (2)
Les types de donnes les plus couramment
implments dans les jeux d'instructions sont :
Type entier
Type flottant
Type caractre

2014,2016 F. Pellegrini 126


Types de donnes entiers (1)
Le type entier est toujours disponible
Sert au fonctionnement de la couche micro-
architecture
Toutes les architectures disposent de types
entiers signs
Presque toujours cods en complment deux
Il existe aussi souvent des types non signs
Disponibles en plusieurs tailles
Quelques unes choisies parmi les tailles classiques
de 8, 16, 32, 64 bits (jamais de type boolen)
2014,2016 F. Pellegrini 127
Types de donnes entiers (2)
Les types entiers non supports :
Soit doivent tre muls de faon logicielle
Cas du type caractre (8 bits) sur le CRAY-1 (mots de
64 bits) au moyen de dcalages et masquages de bits
Lecture
Dcalage
Masquage
OU logique
criture

Soit font l'objet d'un support partiel par le matriel


Cas des instructions ADD/ADC ( add with carry ) sur
le 8080 pour faire des additions sur plus d'un octet
ADC ADC ADC ADD
+ + + +

2014,2016 F. Pellegrini 128


Types de donnes flottants
Les types flottants sont trs souvent
disponibles
Sauf sur les processeurs bas de gamme, o les
nombres flottants sont muls logiciellement
Disponibles en plusieurs tailles
32, 64, 80, ou 128 bits
Souvent grs par des registres spars
Cas des 8 registres flottants de l'architecture
x86, organiss sous forme de pile

2014,2016 F. Pellegrini 129


Types de donnes caractres
La plupart des ordinateurs sont utiliss pour des
tches de bureautique ou de gestion de bases
de donnes manipulant des donnes textuelles
Quelques jeux d'instructions proposent des
instructions de manipulation de suites de
caractres
Caractres muls par des octets (ASCII), des mots
de 16 bits (Unicode), voire de 32 bits
Cas de l'architecture x86 avec les instructions
micro-codes CMPS, SCAS, STOS, etc. utilisables
avec les prfixes REP, REPZ, REPNZ
2014,2016 F. Pellegrini 130
Type de donnes boolen
Il n'existe pas de type boolen natif sur les
processeurs
Pas de possibilit d'adressage en mmoire
Le type boolen est gnralement mul par
un type entier (octet ou mot)
Valeur fausse si la valeur entire est zro
Valeur vraie sinon
Cas de l'instruction et du
jeu d'instructions MIPS, compatibles avec cette
convention de codage
2014,2016 F. Pellegrini 131
Type de donnes rfrence
Une rfrence est un pointeur sur une adresse
Elle est mule par un type de donnes entier
Soit registres entiers gnralistes
Soit registres entiers spcifiques d'adresses
Cas du CRAY-1 : 8 registres d'adresses sur 24 bits et 8
registres entiers sur 64 bits
Utilisation de ces registres pour accder aux
donnes en mmoire, en fonction des modes
d'adressage disponibles
Cas des registres SP et BP de gestion de la pile
2014,2016 F. Pellegrini 132
Format des 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.
Les autres champs, optionnels, qui spcifient
o rechercher les oprandes de l'instruction,
sont appels adresses
Les instructions ont toujours de zro trois
adresses
2014,2016 F. Pellegrini 133
Format des instructions (2)
Diffrentes faons de concevoir l'adressage
Architecture trois adresses : on a deux adresses
source et une adresse destination, qui peut tre
quivalente l'une des adresses source
Cas de l'architecture MIPS : instruction
pouvant tre utilise en
Architecture deux adresses : on a toujours une
adresse source, non modifie, et une adresse
destination, modifie ou mise jour selon que
l'opration fait ou non intervenir son ancienne valeur
Cas de l'architecture x86 : instructions ou
2014,2016 F. Pellegrini 134
Format des instructions (3)
Diffrentes faons de concevoir l'adressage
Architecture une adresse : toutes les instructions
de calcul oprent entre une adresse et un registre
unique, appel accumulateur
Anciennes architectures de type 8008
Trop de transferts entre l'accumulateur et la mmoire
Architecture zro adresses : les adresses des
oprandes sont implicites, situes au sommet
d'une pile d'oprandes, o seront placs les
rsultats
Cas de l'architecture JVM
2014,2016 F. Pellegrini 135
Format des instructions (4)
Les instructions peuvent soit toutes tre de la
mme taille, soit tre de tailles diffrentes
Avoir toutes les instructions de mme taille facilite
le dcodage mais consomme plus de mmoire
La taille des instructions peut tre plus petite,
plus grande, ou de longueur quivalente
celle du mot mmoire
1 mot 1 mot 1 mot
Instruction Instr. Instr. Instr. Instruction
Instruction Instr. Instr. Instr. Instr. Ins. Ins.
Instruction Instr. Instr. Instr. Instruction
Instruction Instr. Instr. Instr.
MIPS (32 bits) IA-64 (64 bits) X86 (32 bits : IA-32)
2014,2016 F. Pellegrini 136
Format des instructions (5)
Un jeu d'instructions est dit orthogonal si,
quand une instruction opre sur un registre,
elle peut oprer sur l'ensemble des registres
de mme type (registres entiers, registres
flottants)
Facilite le dcodage des instructions
Implment naturellement au sein des
architectures de type RISC

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)
Une grande partie du travail des compilateurs
consiste dterminer quelles variables seront
places dans quels registres chaque instant, afin
de diminuer les temps d'accs et donc d'excution
2014,2016 F. Pellegrini 141
Adressage indirect par registre
L'oprande spcifi provient de la mmoire
ou y sera stocke, mais son adresse est
contenue dans un registre de numro donn
plutt que code explicitement dans le corps
de l'instruction
Le registre est un pointeur sur l'oprande
On peut rfrencer une zone mmoire sans
avoir coder son adresse dans l'instruction
On peut modifier dynamiquement l'adresse de la
zone mmoire rfrence en modifiant la valeur
du registre
2014,2016 F. Pellegrini 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
Exemple : accs aux variables locales et
paramtres placs dans la pile, par rapport au
registre BP : ! "# $ %
2014,2016 F. Pellegrini 143
Adressage bas index
L'adresse mmoire de l'oprande est calcule
partir de la somme des valeurs de deux registres
(un registre de base et un registre d'index) ainsi
que d'une valeur de dplacement optionnelle
Exemple : accs aux champs des structures
contenues dans un tableau
Le registre de base est l'adresse de dbut du tableau
Le registre d'index rfrence l'adresse de dbut de la
bonne structure par rapport l'adresse du tableau
Le dplacement rfrence la position du dbut du
champ par rapport au dbut de la structure
2014,2016 F. Pellegrini 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
Instructions de copie de donnes
Les instructions de copie de donnes ont
deux usages principaux
Raliser l'affectation de valeurs des variables
Recopie de valeurs dans des variables temporaires
devant servir des calculs ultrieurs
Placer une copie de valeurs utiles l o elles
pourront tre accdes le plus efficacement
Utilisation des registres plutt que de la mmoire
On a toujours des instruction de copie entre
registres, ou entre registre et mmoire, mais
moins souvent de mmoire mmoire
2014,2016 F. Pellegrini 146
Instructions de calcul (1)
Ces instructions reprsentent les oprations
ralisables par l'unit arithmtique et logique,
mais sur des oprandes qui ne sont pas
ncessairement tous des registres
Calculs entre mmoire et registres (cas du x86)
Les instructions de calcul les plus
couramment utilises peuvent faire l'objet
d'un format abrg
Instruction &' remplaant la squence
et , par exemple
2014,2016 F. Pellegrini 147
Instructions de calcul (2)
Dans une architecture de type load/store ,
les seules instructions pouvant accder la
mmoire sont les instructions ( et (
de copie entre mmoire et registre
Les instructions de calcul ne prennent dans
ce cas que des oprandes registres
Simplifie le format et le dcodage des
instructions
Permet d'optimiser l'utilisation de l'unit
arithmtique et logique (pas de cycles d'attente
des oprandes mmoire)
2014,2016 F. Pellegrini 148
Instructions de branchement (1)
L'instruction de branchement inconditionnel
droute le flot d'excution du programme vers
une adresse donne
L'instruction d'appel de sous-programme
droute aussi le flot d'excution mais en plus
sauvegarde l'adresse situe aprs l'instruction
afin de permettre le retour la fonction
appelante
Sauvegarde dans un registre ou dans la pile

2014,2016 F. Pellegrini 149


Instructions de branchement (2)
Les instructions de comparaison et de
branchement conditionnel servent orienter le
flot d'excution en fonction du rsultat de
l'valuation d'expressions boolennes
Implmentation des tests
Implmentation des boucles

2014,2016 F. Pellegrini 150


Instructions de branchement (3)
Deux implmentations possibles :
Instructions de comparaison et de branchement
distinctes utilisant un registre d'tat du processeur
Cas de l'architecture x86 : instruction mettant jour
les bits Z, S, O du mot d'tat programme PSW, et
instructions de branchement ) *, )' , )+ , etc. les
utilisant comme conditions de branchement
Instructions de branchement conditionnel prenant
en paramtres les noms de deux registres
compars la vole pour dcider du branchement
Cas des architecture MIPS et Power : avoir une seule
instruction facilite la rorganisation dynamique de code
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
E/S par interruptions
Le priphrique avertit le processeur, au moyen d'une
interruption, chaque fois que son tat change (coteux)
E/S par DMA ( Direct Memory Access )
Instructions de gestion de priorit (1)
Les micro-architectures modernes
implmentent nativement des mcanismes
matriels permettant de distinguer entre deux
modes d'excution
Mode non privilgi : accs restreint la
mmoire, interdiction d'excuter les instructions
d'entres-sorties
Mode privilgi : accs tout l'espace
d'adressage et toutes les instructions
Instructions spcifiques de passage entre les
deux modes
2014,2016 F. Pellegrini 153
Instructions de gestion de priorit (2)
Servent isoler le systme d'exploitation des
programmes d'application
Les appels systme s'excutent en mode
privilgi, pour pouvoir accder l'ensemble des
ressources de la machine
Les programmes d'application s'excutent en
mode non privilgi, et ne peuvent donc accder
directement au matriel sans passer par les
routines de contrle d'accs du systme
Le passage du mode non privilgi au mode
privilgi ne peut se faire que de faon
strictement contrle (traps et interruptions)
2014,2016 F. Pellegrini 154
Instructions d'interruption (1)
Les interruptions sont des vnements qui,
une fois reus par le processeur, conduisent
l'excution d'une routine de traitement
adapte
L'excution du programme en cours est
suspendue pour excuter la routine de traitement
Analogue un appel de sous-programme, mais
de faon asynchrone
Il existe plusieurs types d'interruptions,
identifies par leur numro
Interrupt ReQuest ) 155
Instructions d'interruption (2)
Les interruptions peuvent tre :
Asynchrones : interruptions matrielles reues
par le processeur par activation de certaines de ses
lignes de contrle
Gestion des priphriques
Synchrones : interruptions gnres par le
processeur lui-mme :
Par excution d'une instruction spcifique ( trap )
Exemple : l'instruction &', de l'architecture x86
Sert mettre en uvre les appels systme
Sur erreur logicielle (erreur d'accs mmoire, de calcul ...)
2014,2016 F. Pellegrini Sert mettre en uvre les exceptions 156
Instructions d'interruption (3)
Lorsque le processeur accepte d'excuter une
interruption :
Il sauvegarde dans la pile l'adresse de la
prochaine instruction excuter dans le cadre du
droulement normal
Il se sert du numro de l'interruption pour indexer
une table contenant les adresses des diffrentes
routines de traitement ( vecteur d'interruptions )
Il se droute cette adresse
Passage en mode privilgi si le processeur en dispose

2014,2016 F. Pellegrini 157


Instructions d'interruption (4)
Au niveau du jeu d'instructions, on trouve
donc des instructions
Pour gnrer des interruptions logicielles
Pour autoriser ou non l'acceptation des
interruptions
Ces instructions ne doivent pas tre excutables par
les programmes d'application
Excutables seulement en mode privilgi
La modification du vecteur d'interruptions ne
peut se faire qu'en mode privilgi
158
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


Architecture ISA du Pentium II (1)
Architecture appele IA-32 (ou x86)
Est le rsultat d'une volution continue depuis
le processeur 8 bits 8080
Maintien d'une compatibilit ascendente
permettant encore l'excution de programmes
crits pour le processeur 16 bits 8086 :
Mode rel : le processeur se comporte comme un
8086
Mode virtuel : le processeur simule un 8086
Mode
2014,2016 F. Pellegrini
protg : utilise l'ensemble du processeur 160
Architecture ISA du Pentium II (2)
Enrichissement continu du jeu d'instructions :
Passage une architecture 32 bits avec le 80386
Ajout des instructions MMX ( MultiMedia
eXtension ) par Intel
Ajout des instructions 3D Now! (par AMD) et
SSE ( Streaming SIMD Extension , par Intel)
Passage une architecture 64 bits avec l'Opteron
d'AMD (architecture appele x86-64 par AMD ou
EM64T par Intel)

2014,2016 F. Pellegrini 161


Architecture ISA du Pentium II (3)
Architecture deux adresses, non orthogonale
Registres gnraux spcialiss
CS AX EAX
AH AL

DS BX EBX
BH BL

ES CX ECX
CH CL

FS DX EDX
DH DL

GS ESI
SS EDI
EIP EBP
EFLAGS ESP

32
Mmoire organise en 16384 segments de 2
octets
2014,2016 F. Pellegrini 162
Architecture ISA du Pentium II (4)
La structure des instructions est complexe et
irrgulire
Code opration expansif
Octets 0-5 1-2 0-1 0-1 0-4 0-4
Prfixe Opcode Mode SIB Dplacement Immdiat

Bits 6 1 1 2 3 3
Instruction Scale Index Base

Quel est l'oprande source ?


Octets/mots

2 3 3
Mod Reg R/M
2014,2016 F. Pellegrini 163
Circuits synchrones (1)
En l'absence de synchronisation, les rsultats
des calculs des circuits avec boucle de
rtroaction seraient inexploitables car faux

Il faut mettre en place des barrires


pour empcher les rsultats du tour courant
de dborder sur le tour suivant
2014,2016 F. Pellegrini 164
Circuits synchrones (2)
On peut raliser ces barrires au moyen de
bascules D faisant verrou ( latch )

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
D Q D Q D Q
CK CK CK

Les bascules doivent tre pilotes par une


horloge

2014,2016 F. Pellegrini 165


Circuits synchrones (3)
La frquence de l'horloge doit tre choisie de
telle sorte que :
Le temps de cycle permette au circuit de se
stabiliser
Dpend de la longueur du chemin critique du circuit
Le temps d'impulsion soit suffisamment court pour
viter toute interfrence entre phases de calcul
Dpend de la longueur du plus court chemin
Impulsion la plus courte possible pour viter tout
problme

2014,2016 F. Pellegrini 166


Circuits synchrones (3)
La frquence de l'horloge doit tre choisie de
telle sorte que :
Le temps de cycle permette au circuit de se
stabiliser
Dpend de la longueur du chemin critique du circuit
Le temps d'impulsion soit suffisamment court pour
viter toute interfrence entre phases de calcul
Dpend de la longueur du plus court chemin
Impulsion la plus courte possible pour viter tout
problme

2014,2016 F. Pellegrini 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

Unit fonctionnelle pipeline 4 tages


2014,2016 F. Pellegrini 168
Pipe-line (2)
Exemple : le lavomatique
Lavage : 30 minutes L
Schage : 40 minutes S
Pliage : 20 minutes P

L S P
L S P
L S P
L S P
L S P
L S P
L S P
L S P

2014,2016 F. Pellegrini 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
Si le pipe-line est idalement quilibr, le
circuit pipe-lin excute n instructions en
(p + n 1) tapes de temps unitaire (T / p + )
Le circuit non pipe-lin excute n instructions
en n.T tapes
2014,2016 F. Pellegrini 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
Tend vers p quand n tend vers +
En supposant petit devant T / p
2014,2016 F. Pellegrini 174
Pipe-line d'instruction (1)
La tche la plus rptitive qu'un processeur ait
effectuer est la boucle de traitement des
instructions
Il faut pouvoir dcomposer le traitement d'une
instruction en sous-tapes de dure peu
prs quivalente

2014,2016 F. Pellegrini 175


Pipe-line d'instruction (2)
tapes classiques du traitement des
instructions :
Fetch : Rcupration de la prochaine instruction
excuter
Decode : Dcodage de l'instruction
Read : Lecture des oprandes (registre ou
mmoire)
Execute : Calcul, branchement, etc...
Write : criture du rsultat (registre ou mmoire)
Elles-mmes dcoupables en sous-tapes
2014,2016 F. Pellegrini 176
Pipe-line d'instruction (3)
La cration des pipe-lines d'instructions et
l'augmentation de leur profondeur a t un
facteur dterminant de l'amlioration de la
performance des processeurs :
5 tages pour le Pentium
12 tages pour les Pentium II et III
20 tages pour le Pentium IV

2014,2016 F. Pellegrini 177


Pipe-line d'instruction (4)
Pourquoi ne pas continuer augmenter la
profondeur des pipe-lines d'instructions ?
Problme de taille des niveaux
Le surcot des latches augmente en proportion
Problme d'quilibrage des niveaux
Plus la granularit souhaite est fine, plus il est difficile
de sparer les fonctions logiques en blocs quilibrs
Problme de dpendances entre instructions

2014,2016 F. Pellegrini 178


Dpendances d'instructions (1)
Les instructions excutes en squence sont
rarement indpendantes
On identifie classiquement quatre types de
dpendances
Certaines sont relles, et refltent le schma
d'excution
D'autres sont de fausses dpendances :
Accidents dans la gnration du code
Manque d'informations sur le schma d'excution

2014,2016 F. Pellegrini 179


Dpendances d'instructions (2)
Dpendance relle Anti-dpendance
mov [A],r1 add r1,r2,r4
...
add r1,r2,r3 mov [A],r1

Dpendance de Dpendance de
rsultat contrle
add r2,r3,r1 bz r4,etiq
div r1,r4,r1
mov [A],r1 etiq: ...
2014,2016 F. Pellegrini 180
Dpendances d'instructions (3)
Lorsque le processeur n'est pas pipe-lin, des
instructions dpendantes peuvent tre
excutes l'une aprs l'autre sans problme
Le rsultat de l'instruction prcdente est connu
au moment o on en a besoin pour la suivante
add r2,r3,r1 F D E M WB
add r4,r1,r4 F D E M WB

2014,2016 F. Pellegrini 181


Dpendances d'instructions (4)
Lorsque le processeur est pipe-lin,
squencer deux instructions dpendantes
peut conduire des incohrences
La valeur d'un registre est lue dans la banque de
registres avant que l'instruction prcdente l'y ait
place
add r2,r3,r1 F D E M WB
add r4,r1,r4 F D E M WB

De multiples techniques existent pour


amoindrir les effets de ce problme
2014,2016 F. Pellegrini 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

You might also like