You are on page 1of 362

Architecture des ordinateurs

(INF155)

F. Pellegrini
Universit Bordeaux 1

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
2004-2007, 2012,2013 F. Pellegrini

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
2004-2007, 2012,2013 F. Pellegrini

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
2004-2007, 2012,2013 F. Pellegrini

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 au sein de circuits intgrs

2004-2007, 2012,2013 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
2004-2007, 2012,2013 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

On pense souvent que la puissance d'un


ordinateur dpend de sa frquence de
fonctionnement
C'est loin d'tre toujours vrai !
2004-2007, 2012,2013 F. Pellegrini

http://en.wikipedia.org/wiki/Instructions_per_second
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

2004-2007, 2012,2013 F. Pellegrini

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
2004-2007, 2012,2013 F. Pellegrini

http://en.wikipedia.org/wiki/Sandy_Bridge
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
2004-2007, 2012,2013 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
2004-2007, 2012,2013 F. Pellegrini

11

Barrire de la chaleur (2)


La frquence ne peut raisonnablement
augmenter au del des 5 GHz
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 !

2004-2007, 2012,2013 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, cofondateur 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 20 nm

Limites atomiques bientt atteintes...


Donc plus possible d'intgrer plus
Mais on veut toujours plus de puissance de calcul !
2004-2007, 2012,2013 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 ?!
2004-2007, 2012,2013 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
1,4 milliards de transistors pour le Core i7 8 curs

Ncessit d'tudier leur fonctionnement


diffrents niveaux d'abstraction
Du composant au module, du module au systme
Multiples niveaux de hirarchie

2004-2007, 2012,2013 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

2004-2007, 2012,2013 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.
2004-2007, 2012,2013 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
Mmoire
contrle
graphique
Unit de
traitement
(processeur)

Mmoire
centrale

Contrleur
de disque
dur IDE/ATA

2004-2007, 2012,2013 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

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

2004-2007, 2012,2013 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
2004-2007, 2012,2013 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.
2004-2007, 2012,2013 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,
2004-2007, 2012,2013 F. Pellegrini

22

Chemin de donnes (2)


Chemin de donnes d'une machine de type
Von Neumann
A+B

Registres gnraux

A
B

Registres
d'entre de l'UAL

UAL

A+B

2004-2007, 2012,2013 F. Pellegrini

Registre de sortie
de l'UAL
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

Dcoder (analyser) l'instruction venant d'tre lue

Faire pointer le compteur ordinal vers l'instruction


suivante (y compris dans le cas de branchements)

Localiser en mmoire les donnes ncessaires

Charger si ncessaire les donnes dans l'UAL

Excuter l'instruction, puis recommencer

2004-2007, 2012,2013 F. Pellegrini

24

Langages et excution
Les processeurs ne comprennent que le
langage machine
Trop lmentaire, trop long programmer

Ncessit de construire des programmes


un niveau d'abstraction plus lev
Meilleure expressivit et gnricit
Moins de risques d'erreurs

Besoin de passer d'un langage humainement


comprhensible une excution machine
2004-2007, 2012,2013 F. Pellegrini

25

Langages et machines virtuelles


Excuter un programme crit dans un langage
1
L au moyen d'une machine comprenant le
langage L0 peut se faire de deux faons
diffrentes
Par traduction
Par interprtation

2004-2007, 2012,2013 F. Pellegrini

26

Traduction
Consiste remplacer chaque instruction de L1
par une squence quivalente d'instructions
de L0
Le rsultat de la traduction est un programme
quivalent crit en L0
L'ordinateur peut alors excuter ce
programme en L0 la place du programme
crit en L1

2004-2007, 2012,2013 F. Pellegrini

27

Interprtation
Consiste utiliser un programme crit en L0
qui prend comme entre un programme crit
en L1, parcourt ses instructions l'une aprs
l'autre, et excute directement pour chacune
d'elles une squence quivalente
d'instructions en L0
Aprs que chaque instruction en L0 a t
examine et dcode, on la met en oeuvre
On ne gnre pas explicitement de
0
programme crit en L
2004-2007, 2012,2013 F. Pellegrini

28

Machines virtuelles
On peut repenser le problme en postulant
1
l'existence d'une machine M excutant
directement le code L1
Si ces machines pouvaient tre facilement
ralises, on n'aurait pas besoin de
0
0
machines M utilisant nativement le L
Sinon, ces machines sont dites virtuelles
Par nature, les langages L1 et L0 ne doivent
pas tre trop diffrents
2004-2007, 2012,2013 F. Pellegrini

29

Machines multi-couches (1)


En itrant ce raisonnement, on peut
concevoir un ensemble de langages, de plus
en plus complexes et expressifs, jusqu'
arriver un niveau d'abstraction satisfaisant
pour le programmeur
Chaque langage s'appuyant sur le
prcdent, on peut reprsenter un ordinateur
construit selon ce principe comme une
machine multi-couches
2004-2007, 2012,2013 F. Pellegrini

30

Machines multi-couches (2)


Les premires machines ne disposaient que
0
de la couche matrielle M
Ralisation de calculs lmentaires
Excution directe des instructions du langage
machine

La mmoire tant rare et chre, il fallait avoir


des instructions plus puissantes
Difficiles cbler dans le matriel
Introduction d'une couche micro-code ralisant
l'interprtation des instructions complexes
2004-2007, 2012,2013 F. Pellegrini

31

Machines multi-couches (3)


Avec la ncessit de partager l'utilisation des
machines, apparition des systmes d'exploitation
Nouveau modle de gestion de la mmoire et des
ressources
Abstraction supplmentaire

Aprs l'inflation des jeux d'instruction microprogramms, retour des jeux d'instructions plus
restreints (RISC)
Disparition de la micro-programmation
Report de la charge de travail sur les compilateurs
2004-2007, 2012,2013 F. Pellegrini

32

Machines multi-couches (4)


La frontire entre ce qui est implment par
matriel et ce qui est implment par logiciel est
mouvante
Toute opration ralise par logiciel peut tre
implmente matriellement
Toute fonction matrielle peut tre mule par
logiciel

Le choix d'implmentation dpend de paramtres


tels que le cot, la vitesse, la robustesse, et la
frquence suppose des modifications
2004-2007, 2012,2013 F. Pellegrini

33

Machines multi-couches (5)


un mme jeu d'instructions peuvent
correspondre plusieurs implmentations de
cots diffrents, utilisant des techniques
diffrentes
Familles de processeurs
Utilisation d'un coprocesseur arithmtique cbl ou
mulation des instructions par logiciel ?

2004-2007, 2012,2013 F. Pellegrini

34

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

2004-2007, 2012,2013 F. Pellegrini

35

Machines multi-couches actuelles


5
4
3
2
1
0
2004-2007, 2012,2013 F. Pellegrini

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
36

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
2004-2007, 2012,2013 F. Pellegrini

37

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
2004-2007, 2012,2013 F. Pellegrini

38

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

2004-2007, 2012,2013 F. Pellegrini

39

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)
2004-2007, 2012,2013 F. Pellegrini

40

Couche langage d'assemblage


Offre une forme symbolique aux langages
des couches infrieures
Permet des humains d'interagir avec les
couches infrieures

2004-2007, 2012,2013 F. Pellegrini

41

Couche langages d'application


Met la disposition des programmeurs
d'applications un ensemble de langages
adapts leurs besoins
Langages dits de haut niveau

2004-2007, 2012,2013 F. Pellegrini

42

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
2004-2007, 2012,2013 F. Pellegrini

43

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
2004-2007, 2012,2013 F. Pellegrini

44

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
45

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

Drain
metteur

Base

Bipolaire

2004-2007, 2012,2013 F. Pellegrini

Source

Grille

CMOS

46

Transistors (3)
Quand VA est bas, VS est haut
+Vcc
+Vcc
VS

VA

VS

VA

2004-2007, 2012,2013 F. Pellegrini

47

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

2004-2007, 2012,2013 F. Pellegrini

48

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

2004-2007, 2012,2013 F. Pellegrini

49

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

ou bien les deux, sont


dans l'tat haut
VA

2004-2007, 2012,2013 F. Pellegrini

VB

50

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
0
1

S
1
0

NON
2004-2007, 2012,2013 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
51

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
2004-2007, 2012,2013
F. Pellegrini
52

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

2004-2007, 2012,2013 F. Pellegrini

53

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

2004-2007, 2012,2013 F. Pellegrini

54

Fonctions boolennes (2)


Une fonction boolenne n variables a
n
seulement 2 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.

2004-2007, 2012,2013 F. Pellegrini

55

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

2004-2007, 2012,2013 F. Pellegrini

56

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)
2004-2007, 2012,2013
F. Pellegrini

57

Fonctions boolennes (5)


Exemple : la fonction majorit M
A B C

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

M
0
0
0
1
0
1
1
1

2004-2007, 2012,2013 F. Pellegrini

A B C

58

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

2004-2007, 2012,2013 F. Pellegrini

59

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
2004-2007, 2012,2013 F. Pellegrini

60

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

2004-2007, 2012,2013 F. Pellegrini

61

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

2004-2007, 2012,2013 F. Pellegrini

62

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

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

2004-2007, 2012,2013 F. Pellegrini

63

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
2004-2007, 2012,2013 F. Pellegrini

64

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

2004-2007, 2012,2013 F. Pellegrini

A
0
0
1
1

B
0
1
0
1

XOR

X
0
1
1
0
65

Porte XOR (2)


A
B

A XOR B

A
B
A
B

A XOR B

A
B
A
B
A
B
2004-2007, 2012,2013 F. Pellegrini

A XOR B

66

Tables de Karnaugh (1)


Les tables de Karnaugh permettent de
simplifier une fonction logique en supprimant
les variables redondantes
Pour cela :
On crit la table de vrit sous forme de tableau
donc les entres regroupent une ou deux
variables, ordonnes selon un code de Gray
Un seul bit de diffrence entre deux mots conscutifs

On cherche des groupes de 1 ou de 0


contigus, y compris travers les bords
2004-2007, 2012,2013 F. Pellegrini

67

Tables de Karnaugh (2)


Exemple : fonction 4 variables A, B, C, D
On groupe les 1 (les plus nombreux) par
paquets de 2x1, 4x1, 2x2, 4x2 (voire 4x4 !)
Chaque fois qu'on double la taille, on limine une
variable

AB

F
00
01
11
10

00
0
0
1
1

2004-2007, 2012,2013 F. Pellegrini

CD
01 11
1
1
0
1
1
1
1
1

10
0
0
1
1

F = BD + CD + A
F = (B + C)D + A

68

Fonctions logiques lmentaires


Pour raliser des circuits logiques complexes,
on ne part pas des portes logiques ellesmmes 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, ...
2004-2007, 2012,2013 F. Pellegrini

69

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
...
2004-2007, 2012,2013 F. Pellegrini

70

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

2004-2007, 2012,2013 F. Pellegrini

71

Dcodeur (2)
S0
S1
S2
C2

S3
S4

C1

S5
S6

C0

2004-2007, 2012,2013 F. Pellegrini

S7

72

Multiplexeur (1)
Un multiplexeur est une fonction possdant
n
2 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
2004-2007, 2012,2013 F. Pellegrini

73

Multiplexeur (2)
D0
D1
D2
D3
F

D4
D5
D6
D7

C2 C2
2004-2007, 2012,2013 F. Pellegrini

C1

C1

C0

C0

74

Multiplexeur (3)
Implantation d'un multiplexeur partir d'un
dcodeur
S
0

S1
S2
S3
S4
S5
S6
S7

2004-2007, 2012,2013 F. Pellegrini

C2

C1

C0

D0
D1
D2
D3

D4
D5
D6
D7

75

Multiplexeur (4)
Utilisation d'un multiplexeur pour implanter la
fonction majorit
D
0

D1
D2
D3
F

D4
D5
D6
D7
VCC
2004-2007, 2012,2013 F. Pellegrini

C2

C1

C0

76

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

2004-2007, 2012,2013 F. Pellegrini

77

Comparateur (2)
A0
B0
A1
B1

A=B

A2
B2
A3
B3

2004-2007, 2012,2013 F. Pellegrini

78

Fonctions arithmtiques
Les fonctions arithmtiques sont des
fonctions logiques reprsentant des
oprations arithmtiques simples telles que :
Additionneur
Dcaleur
Unit arithmtique et logique

2004-2007, 2012,2013 F. Pellegrini

79

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 )
2004-2007, 2012,2013 F. Pellegrini

80

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

2004-2007, 2012,2013 F. Pellegrini

81

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

2004-2007, 2012,2013 F. Pellegrini

Cin
A
B

Cout

82

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

2004-2007, 2012,2013 F. Pellegrini

83

Unit arithmtique et logique (2)


AB

INVA
A

A+B

ENA
B

_
B

Cin

Unit
logique

ENB

F0
Additionneur

F1

Dcodeur
2004-2007, 2012,2013 F. Pellegrini

Cout
84

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
1 bit

UAL
1 bit

UAL
1 bit

UAL
1 bit

UAL
1 bit

UAL
1 bit

X5

X4

X3

X2

X1

X0

2004-2007, 2012,2013 F. Pellegrini

85

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

2004-2007, 2012,2013 F. Pellegrini

86

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
1 bit

UAL
1 bit

UAL
1 bit

UAL
1 bit

UAL
1 bit

UAL
1 bit

X5

X4

X3

X2

X1

X0

2004-2007, 2012,2013 F. Pellegrini

87

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
2004-2007, 2012,2013 F. Pellegrini

88

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
2004-2007, 2012,2013 F. Pellegrini

89

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
2004-2007, 2012,2013 F. Pellegrini

C2
90

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

2004-2007, 2012,2013 F. Pellegrini

91

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
2004-2007, 2012,2013 F. Pellegrini

92

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.
2004-2007, 2012,2013 F. Pellegrini

93

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
2004-2007, 2012,2013 F. Pellegrini

94

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
2004-2007, 2012,2013 F. Pellegrini

Q
95

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


S

0
0

1
R
2004-2007, 2012,2013 F. Pellegrini

Q
96

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


S

0
1

0
R
2004-2007, 2012,2013 F. Pellegrini

Q
97

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
S

R
2004-2007, 2012,2013 F. Pellegrini

0
Q

Q
98

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
0

2004-2007, 2012,2013 F. Pellegrini

0
Q

Q
99

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


S

0
0

1
R

2004-2007, 2012,2013 F. Pellegrini

0
1

Q
100

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

2004-2007, 2012,2013 F. Pellegrini

101

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
S

1
0

0
2004-2007, 2012,2013 F. Pellegrini

Q
102

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
Q
2004-2007, 2012,2013 F. Pellegrini

103

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

2004-2007, 2012,2013 F. Pellegrini

104

Bascule D (3)
Il existe ainsi plusieurs types de bascules D :
Active par CK l'tat haut

_
CK Q

Active par CK l'tat bas

_
CK Q

Active sur front montant

_
CK Q

Active sur front descendant

_
CK Q

2004-2007, 2012,2013 F. Pellegrini

105

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

2004-2007, 2012,2013 F. Pellegrini

106

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

2004-2007, 2012,2013 F. Pellegrini

107

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
2004-2007, 2012,2013 F. Pellegrini

108

Principe d'un circuit mmoire (1)


I0-I2

A0

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

A1

CS
RD
OE
2004-2007, 2012,2013 F. Pellegrini

O0-O2
109

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
2004-2007, 2012,2013
deF. Pellegrini
donnes
110

Correction d'erreurs mmoire (1)


Les mmoires d'ordinateurs peuvent parfois
stocker des valeurs errones, du fait de sautes
de tension ou autres
Pour se protger de ces phnomnes, les
mmoires rcentes utilisent des codes autocorrecteurs
La mmoire possde des capacits de stockage
supplmentaires permettant l'enregistrement
d'informations de contrle
On vrifie la cohrence de ces informations chaque
fois F.qu'un
2004-2007, 2012,2013
Pellegrini mot est lu partir de la mmoire
111

Correction d'erreurs mmoire (2)


Si, pour chaque ensemble de m bits, on ajoute
r bits de contrle, on lit chaque fois un
ensemble de (m + r) bits constituant un mot de
code, traduire en le mot de m bits voulu
Le nombre minimum de bits dont deux mots
de code quelconques diffrent est appele
distance de Hamming
Si la distance de Hamming d'un code est de 3, on
peut corriger une erreur et en dtecter deux

01001

2004-2007, 2012,2013 F. Pellegrini

01011

11011

11111

112

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
2004-2007, 2012,2013 F. Pellegrini
113

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

2004-2007, 2012,2013 F. Pellegrini

114

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
115

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
2004-2007, 2012,2013 F. Pellegrini

116

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

2004-2007, 2012,2013 F. Pellegrini

117

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
2004-2007, 2012,2013 F. Pellegrini

118

Hirarchie mmoire (1)


La mmoire rapide est trs chre et
consomme beaucoup
On a donc une hirarchie mmoire, avec au
sommet des mmoire rapides et de petites
tailles, et en bas des mmoires de grande
capacit, trs peu chres et peu rapides
Registres
Caches
Mmoire centrale
Disque dur ...

2004-2007, 2012,2013 F. Pellegrini

119

Hirarchie mmoire (2)


La hirarchie mmoire fonctionne grce au
principe 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
2004-2007, 2012,2013 F. Pellegrini

120

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
2004-2007, 2012,2013 F. Pellegrini

121

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)
2004-2007, 2012,2013 F. Pellegrini

122

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 gnralistes123
2004-2007, 2012,2013
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 digitale
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 )
2004-2007, 2012,2013 F. Pellegrini

124

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 )
125

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.

2004-2007, 2012,2013 F. Pellegrini

126

Schma d'un processeur lmentaire


Compteur ordinal
Suivant

Registre d'instruction

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

2004-2007, 2012,2013 F. Pellegrini

Chemin de
donnes

Mmoire

(implmentation
en un seul cycle)
127

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 mmoire des donnes lire ou crire, etc.
128

2004-2007, 2012,2013 F. Pellegrini

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

Type I (donne immdiate)


31

26 25

opcode

21 20

rs

16 15

rt

2004-2007, 2012,2013 F. Pellegrini

26 25

opcode

func

immediate

Type J (branchement)
31
26 25
31

adresse
129

Contrle du chemin de donnes (1)


5

Xra
Clk
Zdi

Imm value
tendue 32b

Yra

Zwa

Registres
32 registres
32 bits

msel

32

Xdo
32

Ydo

Adresses
32

ALS
32

st enable

imm enable

_
r/w

wr enable

B
UAL

LF
4

ST

Mmoire

SD
_
a/s

32

Donnes

00
01
10
11

ALS
: Arithmtique
: Logique
: Dcalage
: Desactive

LF
0001 : AND
0011 : A
0101 : B
0110 : XOR
0111 : OR

2004-2007, 2012,2013 F. Pellegrini

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
130

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
Instruction X (5)
li r1,100
x
sw r0,(r1) 00000
add r1,r1,4 x
sw r0,(r1) 00001

Y (5) Z (5)
x
00001
00001
x
00001 00001
00000
x

2004-2007, 2012,2013 F. Pellegrini

we imm_e imm_val
1
1
0x0100
0
0
x
1
1
0x0004
0
0
x

ALS a/s LF ST
01 x 0101 x
11 x
x
x
00 0
x
x
11 x
x
x

SD ld_e st_e
x 0 0
x 0 1
x 0 0
x 0 1

r/w msel
x
0
1 1
x
0
1 1
131

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 REP SCAS 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


132

Interprtation du micro-code (2)


Exemple figuratif de micro-codage pour
l'instruction PUSH ri du processeur 8086
Code machine 0x50 + n du registre sur 3 bits
Le code de POP ri est 0x58
. ..

Registre
interne X

0 10 10 .. .

Bit de fin
Signaux de contrle d'instruction
ST [RSP],R[X]
ADDI SP,2

0
1

0101000
0101001
0101010

Opcode

tat initial

0 10 10 00
2004-2007, 2012,2013 F. Pellegrini

Adresse de la premire
instruction dans la
mmoire du micro-code

0101011

SUBI SP,2
LD R[X],[RSP]

0
1

0101100
0101101
0101110

Mmoire du micro-code

133

Interprtation du micro-code (3)


Mmoire du
micro-code
(ROM ou PLA)
Logique
combinatoire

Registre d'instruction

Registre d'tat

Lignes de contrle
du chemin de donnes

Pas besoin de boucle


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

2004-2007, 2012,2013 F. Pellegrini

134

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
2004-2007, 2012,2013 F. Pellegrini

135

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 en fait au moyen de deux registres
Un registre de base ( Base Pointer , ou BP)
pointe sur le dbut de la zone mmoire alloue
pour les variables locales de la procdure
courante
Un registre de sommet de pile ( Stack Pointer ,
ou SP) pointe sur le dernier mot mmoire allou
2004-2007, 2012,2013 F. Pellegrini

136

Pile (3)
Les paramtres et les variables locales la
procdure courante sont rfrences par
rapport la valeur courante de BP
La zone de donnes rfrence par BP et
limite par SP est appele contexte courant
void
f (
int
c)
{
int
a;
int
b;
...
f (a + 1);
...
}
2004-2007, 2012,2013 F. Pellegrini

SP
BP

b
a
c

(BP-8)
(BP-4)
(BP+...)
137

Pile (4)
Lors d'un appel de procdure, un nouveau
contexte courant se cre au sommet de la pile
Comment grer le retour au contexte appelant ?
SP
void
f (
int
c)
{
int
a;
int
b;
...
f (a + 1);
...
}
2004-2007, 2012,2013 F. Pellegrini

BP

Appel de f()

b
a

(BP-8)
(BP-4)

x+1

b
a

(BP+...)

Plus visibles
138

Pile (5)
Lors d'un appel de procdure, on sauve
Gr par la
galement l'ancien BP dans la pile
procdure
appele

SP
BP
SP
BP

b
a

c
2004-2007, 2012,2013 F. Pellegrini

(BP-8)
(BP-4)
(BP+8)

SP
Gr par la
procdure
appelante

BP

b
a

(BP-8)
(BP-4)

vieux BP
retour (BP+4)
x+1
c
(BP+8)
b
a

139

Pile (6)
Squence d'appel d'une procdure, partie
gre par la procdure appelante :
Empilage des paramtres, dans l'ordre inverse de
celui dans lequel ils sont lists dans la procdure
Autorise les fonctions nombre d'arguments variables :
le premier paramtre est le plus proche de BP, les
autres sont dessous !

Appel de la procdure
Sauvegarde automatiquement l'adresse de retour dans
la pile
2004-2007, 2012,2013 F. Pellegrini

140

Pile (7)
Squence d'appel d'une procdure, partie gre
par la procdure appele (dbut de procdure) :
Empilage de l'ancien BP dans la pile
Copie de la valeur de SP dans celle de BP
Le nouveau contexte est bas la position courante de SP
Le premier paramtre est accessible l'adresse de BP
plus la taille de deux adresses entires (l'ancien BP et
l'adresse de retour), donc (BP+8)

Soustraction SP de la taille des variables locales


Rserve l'espace en cas d'appels ultrieurs
2004-2007, 2012,2013 F. Pellegrini

141

Pile (8)
Squence de retour d'une procdure, partie
gre par la procdure appele (fin de
procdure) :
Remise dans SP de la valeur de BP
Libre la zone des variables locales la procdure

Dpile BP
BP pointe de nouveau sur le contexte appelant

Appelle l'instruction de retour


Dpile la valeur de retour situe dans la pile
2004-2007, 2012,2013 F. Pellegrini

142

Pile (9)
Squence de retour d'une procdure, partie
gre par la procdure appelante :
Incrmentation de SP de la taille de tous les
paramtres empils avant l'appel la procdure
Retour complet l'tat antrieur

2004-2007, 2012,2013 F. Pellegrini

143

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


2004-2007, 2012,2013 F. Pellegrini

144

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 supercalculateur)

Ncessit pour le compilateur de connatre


l'implmentation de la machine cible pour gnrer
du code
efficace
2004-2007, 2012,2013
F. Pellegrini
145

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
2004-2007, 2012,2013 F. Pellegrini

146

Types de donnes (2)


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

2004-2007, 2012,2013 F. Pellegrini

147

Types de donnes entiers (1)


Le type entier est toujours disponible
Sert au fonctionnement de la couche microarchitecture

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)
2004-2007, 2012,2013 F. Pellegrini
148

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

+
2004-2007, 2012,2013 F. Pellegrini

ADC

ADD

ADC

+
149

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
2004-2007, 2012,2013 F. Pellegrini

150

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
avecF. Pellegrini
les prfixes REP, REPZ, REPNZ
2004-2007, 2012,2013
151

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 beq r1,r0,addr et bne du
jeu d'instructions MIPS, compatibles avec cette
convention de codage
2004-2007, 2012,2013 F. Pellegrini

152

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

2004-2007, 2012,2013 F. Pellegrini

153

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
2004-2007, 2012,2013 F. Pellegrini

154

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 add s1,s2,dst
pouvant tre utilise en add r1,r2,r1

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 MOV dst,src ou
ADD
dst,src
2004-2007, 2012,2013
F. Pellegrini
155

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
2004-2007, 2012,2013 F. Pellegrini

156

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
Instruction
Instruction
Instruction
MIPS (32 bits)
2004-2007, 2012,2013 F. Pellegrini

Instr.
Instr.
Instr.
Instr.

Instr.
Instr.
Instr.
Instr.

Instr.
Instr.
Instr.
Instr.

IA-64 (64 bits)

Instruction
Instr. Ins. Ins.
Instruction
X86 (32 bits : IA-32)
157

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

2004-2007, 2012,2013 F. Pellegrini

158

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
2004-2007, 2012,2013 F. Pellegrini

159

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 :
b 0C2F4
Chargement de registres : li r1,100
2004-2007, 2012,2013 F. Pellegrini

160

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

2004-2007, 2012,2013 F. Pellegrini

161

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
2004-2007, 2012,2013 F. Pellegrini

162

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
2004-2007, 2012,2013 F. Pellegrini

163

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 : MOV AX,(BP+4)
2004-2007, 2012,2013 F. Pellegrini

164

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
2004-2007, 2012,2013
F. Pellegrini
champ
par rapport au dbut de la structure

165

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
2004-2007, 2012,2013 F. Pellegrini

166

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
2004-2007, 2012,2013 F. Pellegrini

167

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 INC R1 remplaant la squence MOV
R2,1 et ADD R1,R2, par exemple
2004-2007, 2012,2013 F. Pellegrini

168

Instructions de calcul (2)


Dans une architecture de type load/store ,
les seules instructions pouvant accder la
mmoire sont les instructions load et store
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 F.oprandes
mmoire)
2004-2007, 2012,2013
Pellegrini

169

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
2004-2007, 2012,2013 F. Pellegrini

170

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

2004-2007, 2012,2013 F. Pellegrini

171

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 CMP mettant jour
les bits Z, S, C du mot d'tat programme PSW, et
instructions de branchement JEQ, JNE, JGE, 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

2004-2007, 2012,2013 F. Pellegrini

172

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
2004-2007, 2012,2013 F. Pellegrini

174

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
2004-2007, 2012,2013
F. Pellegrini contrle (traps et interruptions)
strictement

175

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 )

176

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 INT de l'architecture x86
Sert mettre en uvre les appels systme

Sur erreur logicielle (erreur d'accs mmoire, de calcul ...)


177

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
2004-2007, 2012,2013 F. Pellegrini

178

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
179

Espace d'adressage (1)


La plupart des couches ISA considrent la
mmoire comme un espace linaire et continu
commenant de l'adresse 0 l'adresse 232-1
ou 264-1
En pratique, on n'utilise pas plus de 44 fils
d'adresses (adressage de 16 TraMots)

2004-2007, 2012,2013 F. Pellegrini

180

Espace d'adressage (2)


Pour adresser plus de mots mmoire que ne
peut en adresser un mot machine, on peut
construire les adresses mmoires en combinant
deux mots machine :
Un mot de poids fort dfinissant un segment mmoire
Un mot de poids faible dfinissant un dplacement
( offset ) dans le segment considr
Cas du 8086 : mots de 16 bits et 20 fils d'adresses
Dcalage
+

Segment

2004-2007, 2012,2013 F. Pellegrini

Adresse

0000

16 bits
16 bits (dcals de 4 positions)
20 bits

181

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 protg : utilise l'ensemble du processeur

2004-2007, 2012,2013 F. Pellegrini

182

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)
2004-2007, 2012,2013 F. Pellegrini

183

Architecture ISA du Pentium II (3)


Architecture deux adresses, non orthogonale
Registres gnraux spcialiss
AX

AL

EAX

BL

EBX

CL

ECX

DX
DH
DL

EDX

CS

AH

DS

BH

ES

CH

FS

BX
CX

GS

ESI

SS

EDI

EIP

EBP

EFLAGS

ESP

32

Mmoire organise en 16384 segments de 2


octets
2004-2007, 2012,2013 F. Pellegrini

184

Architecture ISA du Pentium II (4)


La structure des instructions est complexe et
irrgulire
Code opration expansif
Octets

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

Quel est l'oprande source ?


Octets/mots

2
Mod
2004-2007, 2012,2013 F. Pellegrini

3
Reg

3
R/M
185

Architecture ISA de l'UltraSparc (1)


Architecture SPARC version 9
Processeurs dvelopps par diffrentes
entreprises selon les spcifications de l'ISA

Architecture RISC 64 bits, load/store,


orthogonale, trois adresses
Espace d'adressage linaire de 264 octets
Seulement 44 lignes d'adresse implmentes
jusqu'ici

2004-2007, 2012,2013 F. Pellegrini

186

Architecture ISA de l'UltraSparc (2)


32 registres visibles un instant donn,
parmi 136 rellement disponibles
Systme de fentre glissante pour le passage
des paramtres

2004-2007, 2012,2013 F. Pellegrini

187

Architecture ISA de l'IA-64 (1)


L'architecture IA-32 avait atteint ses limites
Le surcot de complexit d au support de la
compatibilit ascendente devenait trop pnalisant

L'architecture IA-64 repart de zro


Architecture RISC 64 bits, load/store, orthogonale
128 registres gnraux de 64 bits
128 registres flottants de 82 bits

Mais possibilit pour les processeurs Intel de


fonctionner soit en mode IA-32, soit en mode
IA-64
2004-2007, 2012,2013 F. Pellegrini

188

Architecture ISA de l'IA-64 (2)


Paradigme EPIC : Explicitely Parallel
Instruction Computing
Le compilateur, lorsqu'il gnre le code machine,
identifie les instructions pouvant s'excuter en
parallle sans risque de conflit
En fonction de la puissance du processeur, et
plus prcisment de son degr de superscalarit,
plus ou moins de ces instructions indpendantes
pourront tre excutes en parallle
La complexit du squencement des instructions
est dporte vers le compilateur, permettant de
2004-2007, 2012,2013
F. Pellegrini et donc d'acclrer, l'excution
simplifier,

189

Architecture ISA de l'IA-64 (3)


Les instructions sont groupes par trois en
liasses ( bundles ) de 128 bits
41
Instruction 1
7+7
Opcode

41
Instruction 2
7
R1

7
R2

41
Instruction 3

5
Template

7
6
R3 Prdicat

Un champ template spcifique la liasse


spcifie les dpendances temporelles entre
instructions de la liasse ainsi que vis--vis de la
liasse suivante

ftp://download.intel.com/design/Itanium/manuals/245319.pdf
2004-2007, 2012,2013 F. Pellegrini

190

Architecture ISA de l'IA-64 (4)


Grce des instructions prdicat, on peut
fortement rduire le nombre de branchements
conditionnels, qui sont une cause trs
importante de perte de performance
Moins d'instructions
Absence de rupture de pipe-line lors de
mauvaises prdictions de branchements
if (R1 == 0)
R2 = R3;

CMP
JNE
MOV
ET1: ...

2004-2007, 2012,2013 F. Pellegrini

R1,0
ET1
R2,R3

CMOVZ R2,R3,R1
...

191

Architecture ISA de l'IA-64 (5)


Grce des instructions conditionnelles, dont le
prdicat est la valeur d'un des 64 registres de
prdiction, on peut tendre ce principe tous les
types d'instructions
Des instructions permettent de positionner P2i et P2i+1
CMP
BNE
MOV
ADD
if (R1 == R2)
JMP
R3 = R4 + R5; ET1: MOV
else
SUB
R6 = R4 - R5;
ET2: ...
2004-2007, 2012,2013 F. Pellegrini

R1,R2
ET1
R3,R4
R3,R5
ET2
R6,R4
R6,R5

CMPEQ R1,R2,P4
<P4> ADD
R3,R4,R5
<P5> SUB
R6,R4,R5
192

Architecture ISA de l'IA-64 (6)


Des instructions de pr-chargement ( prefetching ) permettent d'anticiper les accs la
mmoire et donc de recouvrir le temps d'accs
aux donnes par des calculs utiles
Instruction LOAD spculative pour dmarrer une
lecture par anticipation
Instruction CHECK pour vrifier si la donne est
bien prsente dans le registre avant de l'utiliser
Si la donne est prsente, se comporte comme un NOP
Si l'accs est invalide, provoque une exception comme si
la lecture venait d'avoir lieu
2004-2007, 2012,2013 F. Pellegrini

193

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
2004-2007, 2012,2013 F. Pellegrini

194

Circuits synchrones (2)


On peut raliser ces barrires au moyen de
bascules D faisant verrou ( latch )
D Q

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

Les bascules doivent tre pilotes par une


horloge
2004-2007, 2012,2013 F. Pellegrini

195

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
2004-2007, 2012,2013 F. Pellegrini

196

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
2004-2007, 2012,2013 F. Pellegrini

197

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


2004-2007, 2012,2013 F. Pellegrini

198

Pipe-line (2)
Exemple : le lavomatique
Lavage : 30 minutes

Schage : 40 minutes

Pliage : 20 minutes
L
L

S
S
L

P
P

S
L

2004-2007, 2012,2013 F. Pellegrini

S
P

S
L

P
P

199

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

2004-2007, 2012,2013 F. Pellegrini

200

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 !

2004-2007, 2012,2013 F. Pellegrini

201

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

2004-2007, 2012,2013 F. Pellegrini

202

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
2004-2007, 2012,2013 F. Pellegrini

203

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
2004-2007, 2012,2013 F. Pellegrini

petit devant T / p
204

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

2004-2007, 2012,2013 F. Pellegrini

205

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


2004-2007, 2012,2013 F. Pellegrini

206

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

2004-2007, 2012,2013 F. Pellegrini

207

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


Ncessit d'introduire de plus en plus de bulles
Ruptures de pipe-line de plus en plus coteuses
Problme des branchements conditionnels

2004-2007, 2012,2013 F. Pellegrini

208

Dpendances et bulles (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
2004-2007, 2012,2013 F. Pellegrini

209

Dpendances et bulles (2)


Dpendance relle

Anti-dpendance

mov [A],r1

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
2004-2007, 2012,2013 F. Pellegrini

etiq:

...
210

Dpendances et bulles (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
add r4,r1,r4

2004-2007, 2012,2013 F. Pellegrini

M WB
F

M WB

211

Dpendances et bulles (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
add r4,r1,r4

2004-2007, 2012,2013 F. Pellegrini

M WB

M WB

212

Dpendances et bulles (5)


Pour viter les incohrences, on peut :
Intercaler des instructions indpendantes
Pas de perte de performance du pipe-line

Mettre des nop


Perte de performance du pipe-line
add r2,r3,r1
mov 1,r4
add r5,r6,r6
nop
add r4,r1,r4
...

2004-2007, 2012,2013 F. Pellegrini

M WB

M WB

M WB

M WB

M WB

M WB
213

Dpendances et bulles (6)


Afin de ne pas augmenter inutilement la taille du
code, les processeurs dtectent
automatiquement les conflits d'accs et insrent
automatiquement des bulles dans le pipeline d'instructions
Register scoreboarding : marquage des usages
add r2,r3,r1
mov 1,r4
add r5,r6,r6
add r4,r1,r4
...

2004-2007, 2012,2013 F. Pellegrini

M WB

M WB

M WB

M WB

M
214

Dpendances et bulles (7)


C'est au compilateur d'optimiser l'excution du
code en entrelaant les instructions
indpendantes
Ncessite plus de registres pour casser les antidpendances et dpendances de rsultat
mul

[B],[C],r1

mul

[B],[C],r1

mul

[D],[E],r2

mul

[D],[E],r2

add

r1, r2,[A]

mul

[G],[H],r3

mul

[G],[H],r1

mul

[I],[J],r4

mul

[I],[J],r2

add

r1,r2,[A]

add

r1,r2,[F]

add

r3,r4,[F]

2004-2007, 2012,2013 F. Pellegrini

215

Data forwarding (1)


On peut modifier l'architecture du processeur
pour rduire la pnalit associe aux
dpendances
On renvoie la valeur calcule par une
instruction l'tage qui la demande, sans
attendre qu'elle ait t r-crite dans la
banque de registres
Transmission anticipe de la valeur d'un registre :
data forwarding
2004-2007, 2012,2013 F. Pellegrini

216

Data forwarding (2)


Ds qu'une valeur a t calcule (tage E) ou
lue (tage M), on peut la renvoyer vers l'tage E
sans passer par les phases WB et D
add r2,r3,r1
mov 1,r4
add r4,r1,r4

M WB

M WB

M WB

Ncessite des multiplexeurs supplmentaires


pour alimenter l'ALU partir des tages suivants
Plus on a d'tages, plus le multiplexage est coteux
2004-2007, 2012,2013 F. Pellegrini

217

Data forwarding (3)


Le data forwarding permet de rsoudre les
dpendances entre instructions arithmtiques
Ds qu'un rsultat a t calcul dans l'tage
d'excution, il peut tre rinject cet tage

Les seules dpendances entre instructions


ncessitant un blocage proviennent de l'attente
d'un rsultat provenant des tages suivants
Load-use hazard :
mov (r2),r1
add r4,r1,r4
2004-2007, 2012,2013 F. Pellegrini

218

Branchements conditionnels (1)


Les branchements conditionnels reprsentent
la plus grande source de bulles
Tant que la condition n'est pas value, on ne
peut savoir avec certitude quelle branche
excuter
La solution la plus simple en termes d'architecture
est de bloquer l'excution des instructions
suivantes jusqu' disparition de l'incertitude
Mais c'est extrmement coteux !

2004-2007, 2012,2013 F. Pellegrini

219

Branchements conditionnels (2)


Pour rduire le cot des branchements
conditionnels, on peut utiliser plusieurs
techniques :
Rduire le nombre de branchements : droulage de
boucles ( loop unrolling )
Excuter de faon prospective l'une des deux
branches
Prendre le plus souvent possible la bonne
branche : prdiction de branchement

2004-2007, 2012,2013 F. Pellegrini

220

Branchements conditionnels (3)


Diminuer la pnalit de purge du pipe-line :
branchement retard
Prendre les deux branches la fois : excution
spculative
Ncessite une architecture trs complexe, mlant superscalarit et out-of-order execution

2004-2007, 2012,2013 F. Pellegrini

221

Branchements conditionnels (4)


Une source de dpendance spcifique aux
processeurs CISC est le mot d'tat programme
Entre une instruction modifiant les drapeaux et
l'instruction de branchement conditionnel qui les
utilise, il n'est pas possible d'intercaler d'autres
instructions indpendantes mais qui modifient elles
aussi les drapeaux

Solution : disposer de drapeaux indpendants


Registres de prdicat de l'architecture IA-64
Permettent de pr-calculer plusieurs conditions
2004-2007, 2012,2013 F. Pellegrini

222

Droulage de boucle (1)


Technique permettant de rduire le
nombre de branchements conditionnels
vus par le processeur par recopie en
plusieurs exemplaires du corps de la
i = ideb
boucle

i = ideb

i < ifin-4
i < ifin
f(i)
i ++
2004-2007, 2012,2013 F. Pellegrini

f(i), f(i+1)
f(i+2), f(i+3)
i += 4

223

Droulage de boucle (2)


La duplication de code permet l'entrelacement
d'instructions indpendantes
L'excution des dernires (ou premires)
itrations peut se faire au prix d'un seul test
par tour
On amortit le cot de dtection des cas
particuliers en les testant dans l'ordre croissant
du nombre d'itrations restant faire

2004-2007, 2012,2013 F. Pellegrini

224

Droulage de boucle (3)


int

t[1000], n, s, i;

n = f ();
for (i = 0, s = 0; i < n; i ++)
s += t[i];

// f() renvoie 1000 mais le


// compilateur ne le sait pas

...
xorl %edx,%edx
# Somme zro
movl %eax,%esi
# Nombre dans esi
movl %edx,%eax
# Compteur zro
cmpl %esi,%edx
# Valeur de fin atteinte ?
jge .L45
# Si oui, rien faire
movl %esi,%ecx
# Copie compteur dans ecx
leal -4000(%ebp),%ebx # Adresse tableau dans ebx
andl $3,%ecx
# Si compteur multiple de 4
je .L47
# Va la boucle droule
cmpl $1,%ecx
# Si valeur modulo 4 est 1
jle .L59
# Fait un tour et droule
cmpl $2,%ecx
# Si valeur modulo 4 est 2
jle .L60
# Fait deux tours et droule
movl -4000(%ebp),%edx # Charge premire valeur
movl $1,%eax
# Un tour fait, reste deux
2004-2007, 2012,2013 F. Pellegrini

.L60:
addl (%ebx,%eax,4),%edx
incl %eax

# Fait un tour de boucle


# Incrmente le compteur

addl (%ebx,%eax,4),%edx
incl %eax
cmpl %esi,%eax
jge .L45
.align 4

# Fait un tour de boucle


# Incrmente le compteur
# Valeur de fin atteinte ?
# Termine si c'est le cas
# Alignement pour cache
# Corps de boucle droule
# Droulage d'ordre 4

.L59:

.L47:

addl (%ebx,%eax,4),%edx
addl 4(%ebx,%eax,4),%edx
addl 8(%ebx,%eax,4),%edx
addl 12(%ebx,%eax,4),%edx
addl $4,%eax
# Ajoute 4 au compteur
cmpl %esi,%eax
# Valeur de fin atteinte ?
jl .L47
# Reboucle si non atteinte
.L45: ...
225

Excution prospective
On continue excuter de faon prospective
l'une des deux branches
On ne purgera le pipe-line que s'il s'avre que l'on
n'a pas suivi la bonne branche
Ncessite une circuiterie supplmentaire pour
transformer en bulles les instructions en amont de
l'tage d'excution

Pour prendre le plus possible la bonne


branche, on peut mettre en place des
mthodes de prdiction de branchement
2004-2007, 2012,2013 F. Pellegrini

226

Prdiction de branchement
Deux types de prdiction de branchement :
Statique : la prdiction effectue sur un
branchement donn est pr-calcule la
compilation
Dynamique : la dcision prise sur un branchement
une adresse donne dpend de dcisions prises
par le pass dans l'excution du programme
Ncessaire quand le biais du branchement volue avec
le temps
max = a[0];
for (i = 1; i < N; i ++)
if (a[i] > max)
max = a[i];

2004-2007, 2012,2013 F. Pellegrini

227

Prdiction de branchement (2)


La prdiction statique peut tre :
Identique pour tous les branchements :
Always taken : environ 60 % de russite
Backward taken, forward not taken (BTFNT) : environ
65 % de russite
Favorise les boucles : branchement de sortie descendant (non
pris) ou remontant (pris)

Dtermine pour chaque branchement par le


compilateur aprs analyse statique ou dynamique
du code : environ 90 % de russite
Drapeau ajout l'instruction de branchement
conditionnel

2004-2007, 2012,2013 F. Pellegrini

228

Prdiction de branchement (3)


La prdiction dynamique peut tre :
Locale : seul l'historique du branchement en
question est considr
Prdicteur un ou deux bits conservant l'historique des
dernires dcisions prises pour le branchement
On ira dans le sens des dernires dcisions

Globale : on considre les dcisions prises pour les


branchements prcdents, quels qu'ils soient
Permet de traiter les branchements corrls

2004-2007, 2012,2013 F. Pellegrini

229

Branchement retard (1)


Lors d'une mauvaise prdiction, tous les tages
en amont de l'tage d'excution doivent tre
purgs
Facteur limitatif l'augmentation de la longueur des
pipe-lines d'instructions

Si les instructions prsentes dans le pipe-line


taient excutables quel que soit la branche
prise, il n'y aurait pas besoin de purger le pipeline
2004-2007, 2012,2013 F. Pellegrini

230

Branchement retard (2)


Un processeur mettant en uvre un
branchement retard de d tapes ne purgera
jamais les d instructions les plus proches de
l'tage d'excution
charge pour le compilateur de trouver des
instructions utiles y placer ou d'y mettre des nop
load
dec
be
div
mul

r1, [A]
r2
r2, pc+2
r1, r1, r2
r1, r1, r3

Avec d = 0
2004-2007, 2012,2013 F. Pellegrini

dec
bz
load
div
mul

r2
r2, pc+3
r1, [A]
r1, r1, r2
r1, r1, r3

Avec d = 1

dec
bz
load
nop
div
mul

r2
r2, pc+4
r1, [A]
r1, r1, r2
r1, r1, r3

Avec d = 2
231

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 )
2004-2007, 2012,2013 F. Pellegrini

232

Mesure de la performance (1)


La frquence d'horloge est un critre
important, mais pas dterminant
D'autres critres entrent galement en jeu :
RISC vs. CISC
Pipe-line
Superscalarit
Hirarchie mmoire

2004-2007, 2012,2013 F. Pellegrini

233

Mesure de la performance (2)


La mesure la plus pertinente de l'efficacit de
l'architecture est d'valuer le nombre de
cycles par instruction (CPI)
Idalement gal 1 pour les architectures
scalaires
Idalement gal d pour les architectures
superscalaires de degr d
Le traitement des dpendances entre
instructions fait augmenter cette valeur

2004-2007, 2012,2013 F. Pellegrini

234

Mesure de la performance (3)


Pour comparer les performances de deux
machines diffrentes, il faut dcomposer le
temps d'excution en ses constituants :
T : temps total
: temps de cycle
c : nombre de cycles

T=c.

i : nombre d'instructions

T = i . (c / i) .

Le nombre d'instructions dpend de l'ISA et


du compilateur
2004-2007, 2012,2013 F. Pellegrini

235

Systme d'exploitation (1)


Un systme est un programme qui, du point
de vue du programmeur, ajoute une varit
d'instructions et de fonctionnalits en plus de
celles dj offertes par la couche ISA
La couche systme contient toutes les
instructions de la couche ISA, moins les
dangereuses, et plus celles ajoutes par le
systme, sous la forme d'appels systme
Les nouvelles instructions de la couche
systme sont toujours interprtes
2004-2007, 2012,2013 F. Pellegrini

236

Systme d'exploitation (2)


Buts d'un systme d'exploitation
Dcharger le programmeur d'une tche de
programmation norme et fastidieuse et lui permettre
de se concentrer sur l'criture de son application
Protger le systme et ses usagers de fausses
manipulations
Offrir une vue simple, uniforme, et cohrente de la
machine et de ses ressources
Vue
descendante

Machine virtuelle

SE
Vue
ascendante
2004-2007, 2012,2013 F. Pellegrini

Gestionnaire de ressources

237

Systme d'exploitation (3)


En tant que machine virtuelle, le systme
fournit :
Une vue uniforme des entres/sorties
Une mmoire virtuelle et partageable
La gestion scurise des accs
La gestion des processus
La gestion des communications inter-processus

2004-2007, 2012,2013 F. Pellegrini

238

Systme d'exploitation (4)


En tant que gestionnaire de ressources, le
systme doit permettre :
D'assurer le bon fonctionnement des ressources
et le respect des dlais
L'identification de l'usager d'une ressource
Le contrle des accs aux ressources
L'interruption d'une utilisation de ressource
La gestion des erreurs
L'vitement des conflits
2004-2007, 2012,2013 F. Pellegrini

239

Gestion de la mmoire
Au dbut de l'informatique, les mmoires (vives
et de masse) taient de trs faible capacit et
trs chres
Les plus gros programmes ne pouvaient tenir en
mmoire, avec leurs donnes

Deux solutions possibles :


Avoir plusieurs petits programmes
Mais surcot de sauvegarde et de rechargement des
donnes chaque changement de programme

Remplacer la vole le code en laissant les donnes


en place
en mmoire : systme des overlays
2004-2007, 2012,2013
F. Pellegrini
240

Overlays (1)
Le programmeur, lors de l'dition de liens d'un
programme, rpartit les diffrents modules qui
le composent en sous-ensembles excutables
les plus indpendants possibles : les overlays
Cas des passes d'un compilateur, par exemple

Lorsque l'overlay en cours d'excution a besoin


d'appeler une fonction qu'il ne contient pas, une
routine de service charge sa place l'overlay
qui la contient
Possibilit de dupliquer les fonctions les plus
2004-2007, 2012,2013
F. Pellegrini
couramment
utilises

241

Overlays (2)
Exemple d'dition de liens d'un programme,
conduisant l'obtension de deux overlays
Diagramme d'appel

Overlay 1

f1()

f1()

f2()

f2()

f3()
f4()

f3()

f5()
f6()
f7()
2004-2007, 2012,2013 F. Pellegrini

f7()
Donnes

Overlay 2
f4()
f5()
f6()
f7()

Donnes
Limite de la
mmoire
physique
242

Overlays (3)
La construction des overlays est fortement lie
la taille de la mmoire de la machine cible
Si moins de mmoire que la taille du plus grand
overlay, le programme ne peut s'excuter
Si taille plus grande, le programmeur aurait pu
mieux utiliser la mmoire (moins de changements
d'overlays)

Problmes :
Granularit des overlays trop leve
Dcoupage statique et non pas dynamique
2004-2007, 2012,2013 F. Pellegrini

243

Overlays (4)
Pour rendre le systme plus efficace, il faudrait
mieux utiliser l'espace mmoire et rduire les
cots de chargement
Pas de groupage statique fig l'dition de liens
Dcharge l'utilisateur de la tche de groupage

Manipulation de blocs de code de plus petite taille


Cots de chargement et de dchargement limits

Chargement dynamique des portions de code


Position en mmoire pas connue l'avance
Traduction la vole entre adresses virtuelles et physiques

Mmoire virtuelle (1)


Systme permettant de dcoupler l'espace
d'adressage et la mmoire physique
Dcoupage en pages de l'espace d'adressage
virtuel du processus et de la mmoire physique
Taille variant de 512 octets 64 Ko, en gnral 4 Ko

Placement ( mapping ) des pages en mmoire


0K
4K
8K
12K
Espace d'adressage
16K
du processus
20K
24K
28K
2004-2007, 2012,2013 F. Pellegrini
Adresses
virtuelles

0K
4K
8K
12K

Adresses
physiques

Mmoire
physique
245

Mmoire virtuelle (2)


Un dispositif matriel appel MMU ( Memory
Management Unit ) fait la conversion la
vole entre adresses virtuelles et adresses
physiques
Convertit chaque adresse virtuelle mise par le
processeur en adresse physique
Processeur
Adresses
virtuelles

Mmoire
MMU

Adresses
physiques
2004-2007, 2012,2013 F. Pellegrini

Bus mmoire
246

Mmoire virtuelle (3)


La conversion des adresses physiques en
adresses virtuelles s'effectue au moyen de
tables de pages
La partie haute de l'adresse virtuelle sert d'index
La partie basse sert de dplacement ( offset )
dans la page
v v v v v v d d d d d d d d
Numro de
page virtuelle

Numro de
page
physique

Dplacement

p p p p d d d d d d d d
2004-2007, 2012,2013 F. Pellegrini

247

Mmoire virtuelle (4)


Les pages du processus sont charges en
mmoire la demande ( demand paging )
Si on met une adresse virtuelle correspondant
une page prsente en mmoire physique, la MMU
fait silencieusement le transcodage
Si la page virtuelle n'est pas prsente en mmoire, la
MMU gnre une interruption de type dfaut de
page ( page fault ) destination du processeur
Le processeur traite l'interruption en chargeant la
page depuis le disque, avant de reprendre l'excution
Politique de remplacement LRU ( Least Recently Used )
2004-2007, 2012,2013 F. Pellegrini

248

Mmoire virtuelle (5)


La taille des pages influe sur la performance
Avec des pages trop grandes :
Fragmentation interne plus importante
Les accs alatoires gnrent plus de trafic
mmoire
Matrice stocke par lignes et accde par colonnes

Avec des pages trop petites :


Les chargements partir du disque sont moins
efficaces (pnalit de latence chaque chargement)
Taille de la table des pages trop importante

2004-2007, 2012,2013 F. Pellegrini

249

Mmoire virtuelle (6)


Certains problmes persistent
Droits d'accs : grer l'accs par pages est coteux
Droits valables pour l'ensemble de zones mmoire
fonctionnellement distinctes telles que : code, donnes
initialises constantes, donnes non constantes
initialises ou pas, pile, mmoire partage, code du
systme, donnes du systme, etc.

Granularit d'accs : les accs illgaux au del des


zones alloues d'une page ne sont pas dtects
Espace libre de la dernire page courante de la zone de
donnes
Espace situ au del du sommet de pile
2004-2007, 2012,2013 F. Pellegrini

250

Mmoire virtuelle (7)


Continuit de l'adressage : lors des chargements
dynamiques de bibliothques, on doit placer le
code et les donnes dans des zones de nature
diffrente
Rserver l'avance des plages libres dans l'espace
d'adressage pose des problmes :
Fragmentation externe si ces zones ne sont pas remplies
Collisions entre zones si une zone atteint sa taille maximale
pr-alloue

Ncessit d'un mcanisme de gestion de


zones disjoint de la pagination
2004-2007, 2012,2013 F. Pellegrini

251

Segmentation (1)
La segmentation consiste avoir autant
d'espaces d'adressage que de zones mmoire
d'usages diffrents
Adresses partent partir de 0 pour chaque
segment

2004-2007, 2012,2013 F. Pellegrini

252

Segmentation (2)
Des descripteurs de segments sont associs
chaque segment
Taille l'octet prs (pas de problme de
granularit)
Droits d'accs
Rfrence la racine d'une table de pages
prive ou bien adresse de dbut du segment
dans la mmoire virtuelle (permet facilement les
dplacements logiques de segments dans
l'espace d'adressage)
2004-2007, 2012,2013 F. Pellegrini

253

Gestion mmoire du Pentium II (1)


Sur le 8086, une adresse tait obtenue par
ajout d'une valeur de segment, sur 16 bits,
multiplie par 16, avec une valeur de
dcalage sur 16 bits, pour former une
adresse sur 20 bits
Dcalage
+

Segment
Adresse

2004-2007, 2012,2013 F. Pellegrini

0000

16 bits
16 bits (dcals de 4 positions)
20 bits

254

Gestion mmoire du Pentium II (2)


partir du 80286, on a un vrai adressage
segment
Les registres de segments deviennent des
slecteurs de segments indexant des
descripteurs de segments dans des tables
Deux tables sont maintenues par la MMU
GDT : table globale contenant les descripteurs
communs tous les processus (segments du
systme)
LDT : table locale chaque processus
2004-2007, 2012,2013 F. Pellegrini

255

Gestion mmoire du Pentium II (3)


Slecteur de segment en mode protg
Bits

13
Index

0 : Global Descriptor Table Niveau de privilge (0 - 3)


1 : Local Descriptor Table

Descripteur de segment en mode protg


Bits

16
Base 0-15
Base 24-31
G D

0 : LIMIT en octets
1 : LIMIT en pages
0 : segment de 16 bits
1 : segment de 32 bits
2004-2007, 2012,2013 F. Pellegrini

Limit 16-19 P DPL

16
Limit 0-15
Type
Base 16-23

Type de segment et protection


Niveau de privilge (0 - 3)
0 : Segment non prsent en mmoire
1 : Segment prsent en mmoire

256

Gestion mmoire du Pentium II (4)


L'adresse virtuelle linaire est calcule en
ajoutant la valeur du dplacement l'adresse
de base contenue dans le descripteur
Slecteur

Dplacement

Descripteur
Base
Limite

Adresse linaire

2004-2007, 2012,2013 F. Pellegrini

32 bits

257

Fichiers (1)
La gestion des entres-sorties est un autre
apport majeur de la couche systme
Mise disposition d'une abstraction de
fichier sous forme de suite ordonne d'octets
Possibilits d'accs en lecture, en
lecture/criture, ou seulement en criture
suivant le type de priphrique modlis
Scurit
Confidentialit
Intgrit

2004-2007, 2012,2013 F. Pellegrini

258

Fichiers (2)
Les fichiers existent en dehors de l'espace
d'adressage des programmes
Ncessit de leur nommage

Appel systme d'ouverture de fichier


permettant d'ouvrir un canal de
communication entre le fichier et l'espace
d'adressage du programme
Rcupration d'un descripteur du fichier ouvert

Utilisation de ce descripteur pour changer des


blocs de donnes entre le fichier et la mmoire

2004-2007, 2012,2013 F. Pellegrini

259

Fichiers (3)
Les fichiers sont administrs au sein de
systmes de fichiers
Systmes logiques ou physiques
Possibilit de partitionner un disque unique en plusieurs
systmes de fichiers
Possibilit de regrouper plusieurs disques au sein d'un
systme de fichiers logique unique

Fournissent des modles d'organisation interne


tels que rpertoires, structures arborescentes de
rpertoires, cls, etc.
2004-2007, 2012,2013 F. Pellegrini

260

Langage d'assemblage (1)


La couche langage d'assemblage diffre des
prcdentes en ce qu'elle est implmente par
traduction et non par interprtation
L'existence de moyens de stockage non volatils
fournis par la couche systme d'exploitation permet
de rentabiliser le cot de traduction

Deux sortes de traducteurs :


Assembleur : d'un langage d'assemblage vers un
langage machine
Compilateur : d'un langage de haut niveau vers un
langage
d'assemblage ou un langage machine
2004-2007, 2012,2013
F. Pellegrini
261

Langage d'assemblage (2)


Un langage d'assemblage offre une
reprsentation symbolique d'un langage
machine
Utilisation de noms symboliques pour reprsenter
les instructions et leurs adresses

L'assembleur convertit cette reprsentation


symbolique en langage machine proprement dit
Possibilit d'accs aux fonctionnalits offertes par
la couche systme d'exploitation
2004-2007, 2012,2013 F. Pellegrini

262

Langage d'assemblage (3)


Avantages du langage d'assemblage par
rapport au langage machine
Facilit de lecture et de codage
Les noms symboliques des instructions ( codes
mnmoniques ) sont plus simples utiliser que les
valeurs binaires dans lesquelles elles seront
converties

Facilit de modification
Pas besoin de recalculer la main les adresses des
destinations de branchements ou des donnes
lorsqu'on modifie le programme

Aussi offerts par les langages de haut niveau

2004-2007, 2012,2013 F. Pellegrini

263

Langage d'assemblage (4)


Avantages du langage d'assemblage par
rapport aux langages de haut niveau
Accs la machine
Le langage d'assemblage permet d'accder
l'ensemble des fonctionnalits et des instructions
disponibles sur la machine cible au niveau de la
couche systme d'exploitation

Performance
Un programme en langage d'assemblage est souvent
plus compact et plus efficace qu'un programme en
langage de haut niveau
2004-2007, 2012,2013 F. Pellegrini

264

Langage d'assemblage (5)


Inconvnients du langage d'assemblage par
rapport aux langages de haut niveau
Cot de dveloppement
Longueur du code source
Difficult de programmation
Nombre de mnmoniques
Complexit des modes d'adressage

Difficult de maintenabilit
Variation des performances relatives des instructions
entre plusieurs processeurs de la mme famille

Non portabilit entre familles de processeurs


2004-2007, 2012,2013 F. Pellegrini

265

Langage d'assemblage (6)


Les utilisations principales des langages
d'assemblage sont donc les applications
critiques en termes de taille et/ou de
performance et/ou d'accs au matriel
Applications embarques et enfouies
Pilotes de priphriques
Modules de changement de contexte entre
processus

2004-2007, 2012,2013 F. Pellegrini

266

Instructions des langages d'assemblage


Les instructions des langages d'assemblage
sont habituellement constitues de trois
champs :
Un champ d'tiquette
Un champ d'instruction
Un champ de commentaires (commentaires ligne)

2004-2007, 2012,2013 F. Pellegrini

267

Champ tiquette
Champ optionnel
Associe un nom symbolique l'adresse
laquelle il se trouve
Destination de branchement ou d'appel de sousroutine pour les tiquettes situes en zone de
code
Adresses de variables ou constantes mmoire
pour les tiquettes situes en zone de donnes

2004-2007, 2012,2013 F. Pellegrini

268

Champ instruction (1)


Contient soit une instruction soit une directive
destine l'assembleur lui-mme
Une instruction est constitue :
Du code mnmonique du type de l'opration
De reprsentations symboliques des oprandes
Noms symboliques de registres
Reprsentations de constantes numriques sous
diffrents formats
Dcimal, binaire, octal, hexadcimal

Expressions parenthses ou base de crochets


permettant d'exprimer les diffrents modes d'adressage
2004-2007, 2012,2013 F. Pellegrini

269

Champ instruction (2)


Les types et longueurs des oprandes
manipuls peuvent tre spcifis
Par les noms des registres utiliss
Cas de l'architecture x86 : AL (8 bits), AX (16 bits), EAX
(32 bits)

Par un code mnmonique diffrent


Cas de l'architecture SPARC : LDSB, LDSH, LDSW pour
charger respectivement des octets, des demi-mots ou
des mots signs

Par un suffixe accol au code mnmonique


Cas de l'architecture M68030 : suffixes .B, .W ou .L
2004-2007, 2012,2013 F. Pellegrini
pour manipuler des octets, des mots, ou des mots longs270

Champ commentaire
Ne sert qu'au programmeur et pas
l'assembleur
Permet au programmeur de laisser des
explications utiles sur ce que fait son
programme, ligne par ligne
Un programme en assembleur sans
commentaires est affreusement difficile lire
Difficult de la rtro-ingnirie partir du code
objet d'un programme
2004-2007, 2012,2013 F. Pellegrini

271

Directives
Influent sur le comportement de l'assembleur
Ont de multiples fonctions
Dfinition de constantes symboliques
Analogue au #define du pr-processeur C
Cas de l'architecture x86 : etiquette EQU valeur

Dfinition de segments pour le code binaire


produits par l'assembleur (code ou donnes)
Alignement par mots du code et des donnes
Rservation et initialisation d'espace mmoire
Macro-instructions

2004-2007, 2012,2013 F. Pellegrini

272

Macro-instructions
Une macro-dfinition permet d'associer un nom
un fragment de code en langage
d'assemblage
Analogue la directive #define du prprocesseur C
Possibilit de dfinir des paramtres formels
Cas de l'architecture x86 : directive MACRO ... ENDM

Aprs qu'une macro a t dfinie, on peut


l'utiliser la place du fragment de texte
Remplacement textuel avant l'assemblage

2004-2007, 2012,2013 F. Pellegrini

273

Assemblage (1)
Problme des rfrences descendantes
Comment savoir quelle adresse se fera un
branchement si on ne connait pas encore le
nombre et la taille des instructions intermdiaires
Ncessit de connatre l'ensemble du code source
avant de gnrer le code en langage machine

L'assemblage s'effectue toujours en deux


passes
Premire passe : analyse du code source
Deuxime passe : gnration du code en langage
2004-2007, 2012,2013
F. Pellegrini
274
machine

Assemblage (2)
Lors de la premire passe, l'assembleur :
Vrifie la syntaxe du code assembleur
Collecte les dfinitions des macros et stocke le texte
du code assembleur associ
Effectue l'expansion des noms de macros trouvs
Dtermine les tailles mmoire ncessaires au
stockage de chacune des instructions et directives
rencontres
Collecte dans une table des symboles les dfinitions
des tiquettes et de leur valeur, dtermine partir
de la somme des tailles des instructions prcdentes
2004-2007, 2012,2013 F. Pellegrini
275

Assemblage (3)
Lors de la deuxime passe, l'assembleur :
Selon l'implmentation, relit le code assembleur ou
le flot d'instructions rsultant de l'expansion des
macros ralise lors de la premire passe
Vrifie si les tiquettes ventuellement rfrences
par les instructions ont toutes t trouves lors de la
premire passe
Gnre le code en langage machine pour les
instructions, en y intgrant les adresses mmoire
des tiquettes qu'elles utilisent
Ajoute au fichier objet la table des symboles connus
2004-2007, 2012,2013 F. Pellegrini

276

dition de liens
Produit un excutable partir de fichiers objets
Ajout d'un en-tte de dmarrage au dbut du fichier

La plupart des programmes sont constitus de


plus d'un fichier source
Problme des rfrences croises entre fichiers
Rfrences dfinies dans un fichier et utilises dans
d'autres

Problme de relocation de code


Les adresses dfinitives des donnes et des fonctions
dans le programme excutable dpendent de la faon
dont les diffrents modules sont agencs en mmoire
2004-2007, 2012,2013 F. Pellegrini

277

Rfrences croises
Les symboles externes doivent tre dclars
dans chacun des modules dans lesquels ils sont
utiliss
Insrs dans la table des symboles en tant que
rfrences dclares mais pas dfinies
L'assembleur ajoute les adresses des instructions
utilisant ces rfrences la table des instructions
non rsolues

Ne doivent tre dfinis que dans un seul module


Message d'erreur de l'diteur de liens si dfinitions
multiples
2004-2007, 2012,2013
F. Pellegriniou pas de dfinition
278

Relocation de code
Lors de l'assemblage, les adresses des
instructions de branchements et d'appels
absolus sont stockes dans une table
spcifique
Table de relocation incorpore au fichier objet
Les branchements relatifs locaux ne sont pas
concerns

Lors de l'dition de liens, les adresses


absolues de toutes les rfrences sont
calcules et les dplacements absolus sont
2004-2007,
2012,2013 F. Pellegrini
intgrs
aux codes binaires des instructions

279

Fichier objet
Un fichier objet contient :
Le code en langage machine rsultant de
l'assemblage ou de la compilation du fichier en
code source correspondant
La table des symboles
Symboles dfinis localement et dclars comme
visibles de l'extrieur du module
Symboles non locaux dclars et utiliss dans le
module

La table de relocation
Adresses des instructions utilisant des adresses
2004-2007, 2012,2013
F. Pellegrini (locales et non-locales)
absolues

280

Bibliothques (1)
Lorsqu'on fournit un ensemble de fonctions
rendant un ensemble cohrent de services, il
serait prfrable de grouper les fichiers objets
associs sous la forme d'un unique fichier
Facilite la manipulation et la mise jour

Ce service est rendu par les fichiers de


bibliothque
Fichiers servant archiver des fichiers objet
Utilisables par l'diteur de liens
2004-2007, 2012,2013 F. Pellegrini

281

Bibliothques (2)
Deux types de bibliothques
Bibliothques statiques
Format en lib*.a (Unix) ou *.lib (DOS)
Lies l'excutable lors de la compilation
Augmentent (parfois grandement) la taille des excutables
On n'a plus besoin que de l'excutable proprement dit

Bibliothques dynamiques
Format en lib*.so (Unix, shared object ) ou
*.dll (Windows, dynamic loadable library )
Lies l'excutable lors de l'excution
Permettent la mise jour indpendante des bibliothques
LD_LIBRARY_PATH )

282

dition dynamique de liens (1)


Lorsque l'diteur de liens trouve la dfinition
d'un symbole dans une bibliothque dynamique
Il ajoute au programme un fichier objet spcial, issu
de la bibliothque, appel module d'importation
Le module contient les adresses (invalides) des
branchements ainsi que le nom de la fonction
brol
adresse invalide

call brol ()

b r o l \0

call trol ()

trol
adresse invalide

call brol ()
2004-2007, 2012,2013 F. Pellegrini

t r o l \0
283

dition dynamique de liens (2)


Lors d'un appel une fonction dynamique, il y a
erreur de segmentation et traitement
Le contenu de la bibliothque dynamique est
charg dans un nouveau segment partageable si
elle n'tait pas dj prsente dans le systme
Les adresses modifies pointent dans ce segment
Segment partageable

brol
adresse valide

call brol ()

b r o l \0

call trol ()

brol ()

trol
adresse valide

call brol ()
2004-2007, 2012,2013 F. Pellegrini

t r o l \0

trol ()
284

dition dynamique de liens (3)


Dans d'autres systmes, il n'y a pas
d'indirections sur les adresses des routines
Les adresses des instructions de branchements
sont stockes dans la table de relocation et
associes au nom de la bibliothque dynamique
charger
Lors du chargement du programme, toutes les
bibliothques dynamiques ncessaires sont
charges en mmoire dans des segments partags
si elles ne l'taient pas dj, et les adresses des
branchements sont modifies en consquence
2004-2007, 2012,2013 F. Pellegrini

285

dition dynamique de liens (4)


Certains systmes permettent aussi le
chargement dynamique de bibliothques la
demande lors de l'excution du programme
Analogue au chargement dynamique des
modules dans le noyau
Demande explicite par le programmeur
Cas des systmes de type Unix : dlopen(),
dlsym(), dlclose()

Respecte le paradigme de l'diteur de liens


Pas de symbole non rsolu l'dition de liens
Manipulation des symboles dynamiques par pointeurs

2004-2007, 2012,2013 F. Pellegrini

286

Bus (1)
Un bus est un chemin lectrique commun
reliant plusieurs quipements
Dfini par un protocole, qui spcifie ses
caractristiques mcaniques et lectriques
Exemples :
PC bus : bus interne des PC/XT conu par IBM
AGP : bus pour carte graphique
SCSI : dialogue avec des priphriques
FireWire : connexion entre quipements grand
public ...
2004-2007, 2012,2013 F. Pellegrini

287

Bus (2)
Caractristiques de quelques bus de type PC
Date
1981
1985
1987
1988
1991
1994
1993
1994
1995
1999
2004-2007, 2012,2013 F. Pellegrini

Type de bus
ISA (PC/XT)
ISA (PC/AT)
MCA (PS/2)
EISA
VESA

PCI

Largeur Frquence Dbit max.


8
4,77
4,77
16
8,33
16,33
32
10
40
32
8,33
33
32
33
133
32
66
264
64
66
528
32
33
132
64
33
264
64
66
528
64
133
1024
288

Bus (3)
Les quipements attachs au bus peuvent tre :
Actifs, s'ils peuvent initier des transferts de donnes
par eux-mmes (matres)
Passifs, s'ils ne font qu'attendre des requtes et y
rpondre de faon synchrone (esclaves)

Certains quipements peuvent avoir les deux


rles la fois
Un contrleur de disque reoit passivement les
requtes en provenance du processeur, mais pilote
activement le transfert des blocs de donnes vers la
mmoire une fois qu'ils ont t lus sur le disque 289
2004-2007, 2012,2013 F. Pellegrini

Bus (4)
Les lignes des bus sont divises
fonctionnellement en trois catgories
Lignes de contrle
Lignes d'adresses
Lignes de donnes (ventuellement multiplexes
avec les lignes d'adresses)

Les bus peuvent tre :


Synchrones : pilots par une horloge matre
Asynchrones : ncessit de ngociation entre le
matre et l'esclave pour se synchroniser

2004-2007, 2012,2013 F. Pellegrini

290

Bus (5)
Chronogramme d'une lecture mmoire sur
un bus synchrone avec un cycle d'attente

Adresses

Adresse mmoire

Donnes

Donnes

MREQ
RD
WAIT
2004-2007, 2012,2013 F. Pellegrini

Cycle d'attente

291

Bus USB (1)


Bus destin aux priphriques externes
Caractristiques souhaites sa conception :
Pas de configuration matrielle
Connexion sans avoir besoin d'ouvrir l'ordinateur
Un seul type de cble (plus vrai)
Alimentation fournie par l'unit centrale
127 priphriques raccordables
Support des quipements temps-res
Branchement et dbranchement chaud
2004-2007, 2012,2013 F. Pellegrini

292

Bus USB (2)


Topologie en arbre
Un contrleur principal ( root hub ) connect au
bus matre de l'ordinateur (bus PCI)
Des contrleurs esclaves pour chaque quipement
Aucune communication directe entre quipements

Possibilit de dfinir des sous-canaux de


communication sur un quipement donn
Caractristiques du bus USB
2004-2007, 2012,2013 F. Pellegrini

Date
1996
2001

Type de bus Dbit max.


USB 1.0
1,5
USB 2.0
60

293

Contrleur de priphrique (1)


Tout priphrique d'entre/sortie est
constitu de deux parties
Un sous-systme contenant la plupart de
l'lectronique de commande, appel le
contrleur de priphrique
Le matriel du priphrique proprement dit

2004-2007, 2012,2013 F. Pellegrini

294

Contrleur de priphrique (2)


Lors des changes entre l'unit centrale et
les priphriques, le processeur doit
intervenir pour initialiser l'opration, mais il
n'est pas ncessaire qu'il s'occupe des
transferts mmoire
Certains contrleurs sont capables d'accder
la mmoire centrale sans que l'unit centrale
soit mobilise, faisant ainsi des DMA
( Direct Memory Access )
2004-2007, 2012,2013 F. Pellegrini

295

Disque dur (1)


Constitus d'un empilement de disques
rigides tournant sur le mme axe et revtus
d'une couche magntique
Diamtre d'une dizaine de centimtres moins
de trois centimtres
Secteur
Surfaces survoles
Cylindre
Piste
par des ttes de
lecture/criture
magntique montes
sur un bras mobile
2004-2007, 2012,2013 F. Pellegrini

296

Disque dur (2)


Une piste est la zone couverte par une tte
de lecture en un tour de disque lorsque le
bras reste dans une position donne
Un cylindre est la zone couverte sur tous les
disques par l'ensemble des ttes de lecture
en un tour de disque lorsque le bras reste
dans une position donne
Un secteur est une portion de piste
reprsentant une fraction de la surface
angulaire totale
2004-2007, 2012,2013 F. Pellegrini

297

Disque dur (3)


Les secteurs sont l'unit de stockage
lmentaire sur le disque
On lit et crit par secteurs

Un secteur est constitu :


D'un prambule, servant synchroniser la tte
avant d'entamer l'opration de lecture/criture
De la zone d'informations, en gnral de 512 octets
D'une zone de contrle servant au contrle et la
correction des donnes enregistres

Il existe un espace libre entre chaque secteur


2004-2007, 2012,2013 F. Pellegrini

298

Disque dur (4)


Les plateaux sont en alliage d'aluminium ou en
cramique pour les plus rcents
Ils sont recouverts de particules magntiques
dont le champ peut prendre deux orientations
Entre 500 et 1000 particules utilises pour chaque bit

Deux orientations possibles des particules :


Longitudinale : plus faible densit (20 Gbit/cm2), et
sensibilit plus importante au super-paramagntisme
Perpendiculaire : plus grande densit (40 Gbit/cm2),
mais plus difficile fabriquer

2004-2007, 2012,2013 F. Pellegrini

299

Disque dur (5)


Trois types de ttes
Inductive : la mme tte sert magntiser la piste et
dtecter les variations d'orientation magntique,
qui gnrent un courant induit
Magnto-rsistive : la tte d'criture est inductive,
mais la tte de lecture utilise l'effet magnto-rsistif :
les variations du champ magntique causent des
variations de rsistivit de la tte. Permet un
stockage bien plus dense de l'information.
Magnto-rsistive gante : l'utilisation de matriaux
en couches minces multiplie leurs proprits
2004-2007, 2012,2013
F. Pellegrini
magnto-rsistives
(d'un facteur suprieur 100) 300

Disque dur (6)


La distance radiale entre la ou les ttes de
lecture et le centre du disque sert identifier la
piste courante
La largeur d'une piste dpend de la taille des
ttes et de la prcision de positionnement
Largeur d'une piste de 2 10 microns
Entre 1000 et 4000 pistes par centimtre, en
tenant compte des espaces ncessaires entre
pistes
Densit d'criture sur la piste de 100 000 200
2004-2007, 2012,2013
Pellegrini
000 F.bits
par centimtre linaire

301

Disque dur (7)


La longueur des pistes n'est pas constante
Les pistes sont plus longues la priphrie qu'au
centre du disque (c = 2 r)

Deux mthodes possibles pour grer cela :


Ne rien faire, et densit de stockage d'informations
plus importante prs de l'axe de rotation
Avoir un nombre de secteurs par piste variable
Surface du disque dcoupe en groupes de cylindres
Moins de secteurs par piste dans les groupes situs le
plus prs du centre, plus dans ceux de la priphrie
302

Disque dur (8)


Les performances d'un disque dpendent :
Du temps de positionnement du bras entre deux
cylindres quelconques
Entre 5 et 15 millisecondes en moyenne
Environ 1 milliseconde entre deux cylindres conscutifs

Du temps d'attente du passage du bon secteur


sous la tte de lecture
Dpend de la vitesse de rotation du disque
3600, 5400, 7200 ou 10800 tours par minute
Temps moyen de latence compris entre 3 et 8 millisecondes

Du dbit de transfert de l'information


303

Disque dur (9)


Afin de diminuer le temps de latence
rotationnelle lors de la lecture de gros
fichiers, les secteurs sont entrelacs sur les
pistes ( interleaving )
Sens de
rotation

6
2004-2007, 2012,2013 F. Pellegrini

7
304

CD-ROM (1)
Cration du CD audio par Philips et Sony au
dbut des annes 1980
Hritier du disque vido grand format (30 cm)
dvelopp par Philips la fin des annes 1970
Spcifications techniques normalises par l'ISO
Diamtre de 12 cm
paisseur de 1,2 mm
Diamtre du trou central de 1,5 cm
...

2004-2007, 2012,2013 F. Pellegrini

305

CD-ROM (2)
Un CD est constitu d'une mince pellicule
d'aluminium prise entre deux couches de
matriau plastique transparent (polycarbonate)
La couche d'aluminium est constitue d'un
ensemble de zone plates ( lands ) et de
micro-cuvettes ( tips ) servant coder
l'information
Taille des trous de l'ordre de quelques microns

2004-2007, 2012,2013 F. Pellegrini

306

CD-ROM (3)
La lecture se fait au moyen d'un rayon laser
Les zones plates rflechissent le rayon
Les cuvettes dispersent le rayon

Lentille
Photodtecteur

Prisme semi-rflchissant
Diode laser

2004-2007, 2012,2013 F. Pellegrini

307

CD-ROM (4)
Les microcuvettes et les zones plates sont
inscrites sur une spirale continue
Pas des cercles concentriques comme pour les
disques magntiques

La spirale part du centre du disque vers le bord


22188 rvolutions
Environ 600 spires par mm
5,6 km de long en droul

2004-2007, 2012,2013 F. Pellegrini

308

CD-ROM (5)
Afin d'avoir un flot de donnes continu et
constant en coute audio, la vitesse de rotation
du disque s'adapte en fonction de la distance
radiale du bras portant la lentille
Vitesse linaire de 120 cm/s
Vitesse angulaire de :
530 tours/mn au centre du disque
200 tours/mn au bord du disque

Pour les CD-ROM, on travaille des vitesses


multiples de la vitesse standard
2004-2007, 2012,2013 F. Pellegrini

309

CD-ROM (6)
Les spcifications techniques du formatage des
donnes informatiques sur la spirale du CD
audio sont contenues dans le Livre jaune
Les octets sont encods sous la forme de symboles
de 14 bits permettant la correction d'erreur
Une trame de 588 bits est constitue de 42
symboles servant encoder 24 octets avec
correction d'erreur
Un secteur est constitu d'un groupe de 98 trames
servant encoder 2048 octets, avec un prambule
de 16 octets de synchronisation et de numrotation
2004-2007, 2012,2013 F. Pellegrini
du secteur, et d'une zone de contrle de 288 octets310

CD-ROM (7)
Du fait de la trs grande redondance, la charge
utile d'un CD-ROM n'est que de 28 %
Un CD-ROM peut encoder 650 Mo de donnes

Le dbit reste faible par rapport un disque


magntique
En vitesse normale (x1), un CD-ROM lit 75 secteurs
par seconde, soit 150 ko/s
En vitesse x32, on n'atteint que 4,8 Mo/s
On ne peut augmenter la vitesse de rotation sans
briser les disques, dont le plastique est peu solide
2004-2007, 2012,2013 F. Pellegrini

311

CD-ROM (8)
Afin de rendre les CD-ROM utilisables sur le
plus d'architectures possible, le format du
systme de fichiers a t normalis
Norme ISO 9660

Trois niveaux
Niveau 1 : Nommage la MS-DOS : 8+3
caractres, majuscules uniquement, huit souscatalogues au plus, fichiers contigus
Niveau 2 : Noms de fichiers sur 32 caractres
Niveau 3 : fichiers non contigus
2004-2007, 2012,2013 F. Pellegrini

312

CD-R (1)
Les CD-R sont des CD initialement vierges
sur lesquels on peut inscrire, une seule fois,
des informations
Spcifications dans le Livre orange

Ils contiennent un film rflchissant sur


lequel est plaque une couche de matire
colore photosensible
Habituellement de la cyanine (bleue-verte) ou de
la phtalocyanine (jaune orange)
2004-2007, 2012,2013 F. Pellegrini

313

CD-R (2)
L'criture s'effectue avec un laser de forte
puissance (8 16 mW) qui opacifie la
couche photosensible par chauffage au point
de contact avec la surface rflchissante
La lecture s'effectue de faon classique avec
un laser de faible puissance (0,75 mW)

2004-2007, 2012,2013 F. Pellegrini

314

CD-RW
Permettent la lecture et l'criture
La couche d'enregistrement est constitue d'un
alliage mtallique possdant un tat cristallin et
un tat amorphe de rflectivits diffrentes
Leur laser fonctionne avec trois puissances
Faible puissance : lecture
Moyenne puissance : fonte de l'alliage et
refroidissement lger permettant le passage l'tat
cristallin fortement rflechissant : rinitialisation
Haute puissance : fonte et passage l'tat amorphe

2004-2007, 2012,2013 F. Pellegrini

315

DVD
Mme principe que les CD-ROM, mais
densification de l'information
Laser de longueur d'onde plus petite (0,65
microns contre 0,78 microns)
Microcuvettes plus petites (0,4 microns, contre 0,8
microns)
Spires plus serres (0,74 microns contre 1,6
microns)

La capacit passe 4,7 Go


2004-2007, 2012,2013 F. Pellegrini

316

cran (1)
Principal dispositif de sortie des ordinateurs
actuels
Diffrentes technologies disponibles en
fonction des usages et des contraintes
Tube cathodique ( Cathod Ray Tube , ou CRT)
Cristaux liquides ( Liquid Crystal Display , ou
LCD)
Diodes mittrices organiques ( Organic Light
Emitting Diode , ou OLED)
Plasma
2004-2007, 2012,2013 F. Pellegrini

317

cran (2)
Paramtres caractristiques d'un cran
Rsolution affichable : nombre maximal de pixels
que l'cran peut afficher ou que l'oeil de
l'observateur peut discriminer
Qualit visuelle des images statiques

Frquence de rafrachissement : nombre d'images


distinctes que l'cran peut afficher par seconde
Fluidit des animations et confort de vision

Rmanence : temps que persiste l'impression


visuelle d'une image aprs qu'elle a disparu
Confort de vision des animations

2004-2007, 2012,2013 F. Pellegrini

318

cran tube cathodique (1)


Un faisceau d'lectrons balaye la surface
interne de l'cran et excite une matire
lectroluminescente (phosphore) visible
travers la paroi de verre du fond du tube
Les lectrons sont produits par un ou plusieurs
canons lectrons situs la base du tube,
acclrs, puis dvis par des plaques de
dflexion portant une trs haute tension

2004-2007, 2012,2013 F. Pellegrini

319

cran tube cathodique (2)


cran monochrome : une seule sorte de
phosphore tapisse uniformment la surface du
tube (blanc, vert ou orange)
Cathode

Tube vide
d'air en
verre

Acclrateur
(anode)

2004-2007, 2012,2013 F. Pellegrini

Faisceau
d'lectrons

Paires de
plaques de
dflexion

Spot lumineux au
point d'l'impact

Couche de
phosphore
320

cran tube cathodique (3)


cran couleur : on a trois canons indpendants
qui balayent la surface ensemble, travers un
masque (grille) empchant les pixels de
baver les uns sur les autres
Le pitch est le pas de masque de la grille ainsi
que la finesse du dpt des points de phosphore
sur la surface de l'cran

2004-2007, 2012,2013 F. Pellegrini

321

cran tube cathodique (4)


Deux types de contrle du faisceau
crans vectoriels : le faisceau d'lectrons suit
exactement le trac de l'objet dessiner
Images de type fil de fer autrefois utilises en CAO
ou pour des applications spcialises (crans radar)
Pas de notion de pixels pour les crans monochromes
Pixels de la taille du masque pour les crans couleur

crans balayage ( raster scan ) : le faisceau


effectue un balayage rgulier de toute la surface
Balayage
de l'cran
horizontal
Rsolution plus limiteRetour
2004-2007, 2012,2013 F. Pellegrini

horizontal

Retour
horizontal
322

cran LCD (1)


Les crans LCD sont bass sur deux
proprits des cristaux liquides
Leur pouvoir polarisant sur la lumire qui les
traverse
Leur capacit s'orienter selon les lignes d'un
champ lectrique

2004-2007, 2012,2013 F. Pellegrini

323

cran LCD (2)


Les crans LCD sont constitus :
D'un certain nombre de lampes fluorescentes
servant au rtro-clairage de l'cran
D'un film polarisant ne conservant que la lumire
polarise dans une direction donne
D'une couche de cristaux liquides, comprise
entre un ensemble d'lectrodes, permettant ou
non d'orienter la lumire dans une direction
orthogonale celle de la polarisation initiale
D'un deuxime film polarisant filtrant la lumire
ayant travers les cristaux liquides
2004-2007, 2012,2013 F. Pellegrini

324

cran LCD (3)


Si les cristaux liquides sont orients dans le
sens des deux filtres polarisants, la lumire
passe et le pixel est allum
Si les cristaux liquides sont orients dans le
sens orthogonal celui des deux filtres
polarisants, le pixel est teint
On a en fait trois sous-pixels par pixel,
codant les trois composantes lumineuses, et
suivis de filtres colors
2004-2007, 2012,2013 F. Pellegrini

325

cran LCD (4)


Deux technologies
Matrice passive : chaque pixel est activ
successivement par balayage de l'ensemble des
pixels selon une technologie matricielle lignecolonne
Matrice active : chacun des pixels conserve
individuellement son niveau d'activit grce un
jeu de transistors localiss au niveau de chaque
pixel
TFT ( Thin-Film Transistors )
2004-2007, 2012,2013 F. Pellegrini

326

cran OLED
Constitu d'une couche de matire organique
lectro-luminescente prise en sandwich entre
une cathode mtallique et une matrice
d'anodes transparentes analogue celle des
crans cristaux liquides
Pas besoin de rtro-clairage
cran extrmement fin et consommant peu
Excellente vitesse de rafrachissement
Problmes de rsistance la chaleur, en voie
de
rsolution
2004-2007,
2012,2013
F. Pellegrini

327

Carte graphique (1)


Dispositif de visualisation servant la
production de signaux vido destination de
dispositifs d'affichage (crans, etc)
Les plus anciennes cartes graphiques sont de
simples mmoires d'image ( frame buffer )
construites autour d'une mmoire double-port
Accs en lecture et criture par le processeur, qui
la voit comme de la RAM classique
Accs en lecture seule par un registre dcalage
qui alimente en intensit la sortie d'un signal vido
2004-2007, 2012,2013 F. Pellegrini

328

Carte graphique (2)


A mesure que la puissance des processeurs a
augment, de nouvelles fonctionnalits ont t
mises en uvre pour soulager le CPU
Manipulation de sprites (oprations BitBLT)
Trac acclr de primitives 2D (lignes, cercles)
Interpolation de textures
Calculs de projection 3D de polygones
Calculs d'illumination programmables

La carte 3D est mme parfois utilise comme


co-processeur arithmtique
2004-2007, 2012,2013 F. Pellegrini

329

Modem (1)
Jusqu' rcemment, la seule connectivit dont
pouvait disposer la majorit des utilisateurs tait
la liaison tlphonique
Utilisation des lignes tlphoniques pour les
transmissions entre ordinateurs

Caractristiques d'une liaison tlphonique


Transmission analogique et non pas numrique
Bande de frquence de 300 3400 Hz,
chantillonne 8000 Hz sur 256 niveaux : 64 kb/s
Pas adapte au transport de signaux numriques
2004-2007, 2012,2013 F. Pellegrini

330

Modem (2)
La modulation consiste encoder une
information au sein d'un signal porteur moins
sujet aux attnuations, distorsions et bruits
Ncessit d'un MOdulateur pour encoder le signal
et d'un DModulateur pour le dcoder : MODEM

Modlisation d'une liaison

Voie de communication

ETTD

ETCD

ETCD

ETTD

Circuit
Liaison (bits)
ETCD : quipement Terminal de Circuit de Donnes (modem)
ETTD : quipement Terminal de Traitement de Donnes (terminal, ordinateur)
2004-2007, 2012,2013 F. Pellegrini

331

Modulation (1)
Il existe trois types de modulation
Modulation d'amplitude
Modulation de frquence
Modulation de phase

2004-2007, 2012,2013 F. Pellegrini

332

Modulation (2)
Modulation d'amplitude
Le signal module l'amplitude de la porteuse
1

2004-2007, 2012,2013 F. Pellegrini

333

Modulation (3)
Modulation de frquence
Le signal module la frquence de la porteuse
1

2004-2007, 2012,2013 F. Pellegrini

334

Modulation (4)
Modulation de phase
Les changements d'tat du signal modulent la
phase de la porteuse
1

2004-2007, 2012,2013 F. Pellegrini

335

Modulation (5)
Pour des dbits faibles (< 1200 bits/s), on utilise
la modulation de frquence
Pour des dbits plus importants, on utilise
conjointement la modulation de phase et
d'amplitude
Lorsque le signal peut prendre plus de deux
tats diffrents, on peut ne plus parler en bits/s
mais en bauds/s
Nombre d'tats par seconde
Le dbit en bits/s est un multiple du dbit en bauds/s

2004-2007, 2012,2013 F. Pellegrini

336

Multiplexage
Assemblage de plusieurs signaux issus de
sources distinctes en un seul signal composite
destin tre transmis sur une voie de
communication commune
Deux types de multiplexage
En temps : une voie haut dbit est dcompose
en plusieurs voies bas dbit par allocation
chacune d'un quantum de temps d'mission
En frquence : la bande passante du support est
dcompose en bandes de frquences (canaux)
utilisables par des voies bas dbit
2004-2007, 2012,2013 F. Pellegrini

337

ADSL (1)
L'volution des technologies Ethernet a
montr que l'on pouvait atteindre des dbits
trs importants sur de simples paires de fils
Les technologies DSL ( Digital Subscriber
Line ) permettent d'utiliser la boucle
locale (connexion filaire point--point entre le
central tlphonique et l'abonn) pour
transmettre des informations supplmentaires
Peu coteuses
Pas besoin d'implanter d'autres rseaux, de type
2004-2007, 2012,2013
F. Pellegrini
cble
coaxial ou fibre optique

338

ADSL (2)
Multiplexage en frquence des informations sur
la paire tlphonique
Bande de 0 4 kHz utilise par la tlphonie
classique
Bande de 4 kHz 1.1 MHz, dcoupe en plusieurs
canaux montants et descendants, utilise pour la
transmission d'informations numriques

Utilisation de transmissions analogiques sur la


boucle locale (mme si DSL veut dire boucle
locale numrique ...)
339

ADSL (3)
Au niveau du central, des DSLAMs ( DSL
Access Multiplexer ) multiplexent en
frquence la voie tlphonique et les canaux
de donnes
Au niveau de l'abonn, un filtre passe-bas
permet d'extraire le signal tlphonique, et un
modem DSL gre la transmission sur les
canaux montants et descendants

2004-2007, 2012,2013 F. Pellegrini

340

ADSL (4)
Les dbits obtensibles dpendent :
De la longueur de la paire torsade entre le
central tlphonique et l'abonn
Des sources d'interfrences et de bruits lectromagntiques rencontres
De la technologie DSL utilise

2004-2007, 2012,2013 F. Pellegrini

341

ADSL (5)
Plusieurs technologies mises en uvre :
HDSL : utilisation de deux paires de fils pour
atteindre 1.1 Mbit/s sur 5 km
SDSL : utilisation d'une seule paire sur 3 km pour
obtenir les dbits de l'HDSL
ADSL : Asymmetric DSL : on a moins de
canaux montants (256 kbits/s) que de canaux
descendants
4,9 km

2,048 Mbits/s (E1)

3,7 km

6,312 Mbits/s (DS2)

2,7 km

8,448 Mbits/s

2004-2007, 2012,2013 F. Pellegrini

342

ADSL (6)
VDSL : Very high speed DSL ou Video DSL
1,5 km

12,96 Mbits/s (1/4 STS-1)

1 km

25,82 Mbits/s (1/2 STS-1)

300 m

51,84 Mbits/s (STS-1)

2004-2007, 2012,2013 F. Pellegrini

343

Jeux de caractres (1)


Conventions de codage des caractres
reprsentables sur la machine
Associe chaque symbole une valeur binaire

Les symboles peuvent tre :


Des caractres
Des marques diacritiques combinables avec les
caractres qui les suivent
Accents, esprits, cls, etc.

2004-2007, 2012,2013 F. Pellegrini

344

Jeux de caractres (2)


Cette convention de codage est ncessaire :
Au sein de l'ordinateur, pour que les caractres
saisis au clavier soient bien ceux restitus
l'cran et sur l'imprimante
Entre ordinateurs, pour permettre l'change
d'informations

Ncessit d'un langage commun pour que


deux entits puissent communiquer

2004-2007, 2012,2013 F. Pellegrini

345

Jeu de caractres ASCII (1)


American Standard Code for Information
Interchange
Cod sur 7 bits, pour la transmission modem
Codes de 0x00 0x1F : caractres de commande
utiliss dans le dialogue avec les priphriques
NUL, CR, LF, BS, BEL, EOT, ...

Codes de 0x20 0x2F : caractres de ponctuation


Codes de 0x30 0x39 : chiffres de '0' '9'
Codes de 0x41 0x5A : lettres majuscules
Codes de 0x61 0x7A : lettres minuscules

2004-2007, 2012,2013 F. Pellegrini

346

Jeu de caractres ASCII (2)


Comme les ordinateurs manipulent des octets,
les valeurs de 0x80 0xFF restent disponibles
Utilises par chaque fabricant de machine sa
guise, sans normalisation
Exemple des pages de code tendues des BIOS PC
Caractres semi-graphiques
Symboles mathmatiques
Caractres accentus, ...

Exemple des pages de code de Windows

Tentative de normalisation ISO 646 Latin-1


2004-2007, 2012,2013 F. Pellegrini

347

Jeux de caractres ISO 8859


Normalisation de pages de codes sur un octet
Les 128 premires valeurs quivalent au code ASCII
Les 128 derniers caractres dpendent du numro
de page de code

Numros de page de code :


8859-1 : langues romanes ( Latin-1 )
8859-2 : langues slaves d'origine latine (hongrois,
polonais, tchque, ...)
8859-3 : autres langues crites avec l'alphabet latin
(turc, maltais, espranto)
2004-2007, 2012,2013 F. Pellegrini

348

Jeu de caractres Unicode


Code lensemble des alphabets internationaux
(arabe, chinois, hbreu, hindi, japonais, )
Cod sur 16 bits
65536 codes points diffrents, pour environ 200
000 signes utiliss par toutes les langues crites
Les 256 premiers codes quivalent au Latin-1

Le consortium Unicode dcide de l'attribution


des codes encore inutiliss
Maximise l'utilisation des codes diacritiques pour
conomiser les codes
2004-2007, 2012,2013 F. Pellegrini

349

Imprimante (1)
En dpit de l'explosion de la transmission par
canaux numriques, l'impression papier reste
trs utilise, surtout pour les documents
officiels
Diminution de la quantit de papier pouss
Explosion de l'impression de documents pour
usage individuel (usage unique)
Facilit d'utilisation de ce mdium (prix, robustesse,
facilit d'usage, etc)

2004-2007, 2012,2013 F. Pellegrini

350

Imprimante (2)
Il existe de nombreuses technologies
d'imprimante, caractrises par leur cot et
leurs performances
Imprimantes marteaux
Imprimantes aiguilles
Imprimantes thermiques
Imprimantes jet d'encre
Imprimantes laser, ...

2004-2007, 2012,2013 F. Pellegrini

351

Imprimante marteaux
Les toutes premires imprimantes taient des
machines crire amliores : un ensemble de
marteaux correspondant chaque caractre
venaient frapper la feuille de papier pose sur le
chariot mobile en y appuyant un ruban encreur
Les imprimantes se sont ensuite adaptes aux
gros volumes de papier imprimer : le papier en
accordon reste fixe et un chariot portant les
marteaux se dplace
Imprimantes marguerites

Imprimante rouleaux
Pour les gros volumes d'impression, le
dplacement du chariot est trop lent
Les imprimantes rouleaux sont constitues
d'un ensemble de rouleaux contenant chacun
l'ensemble des caractres imprimables,
pivotables individuellement, couvrant toute une
ligne, et qui sont appliqus simultanment sur
la feuille de papier
On imprime ligne par ligne
Utilises jusqu' rcemment pour imprimer les
2004-2007, 2012,2013
F. Pellegrini
dclarations
d'impt...

353

Imprimante aiguilles (1)


Les imprimantes aiguilles portent sur leur
chariot une ligne d'aiguilles commandes
individuellement par des lectro-aimants et
frappant le ruban pour dessiner les caractres
Servent encore l'impression de factures sur
papiers carbone
Possibilit de faire du graphisme (sommaire)

2004-2007, 2012,2013 F. Pellegrini

354

Imprimante aiguilles (2)


Sur les modles haut de gamme, les aiguilles
se chevauchent pour amliorer le rendu des
figures traces

Certaines imprimantes aiguilles disposaient


d'un ruban quadrichrome permettant de
raliser des impressions en couleur
2004-2007, 2012,2013 F. Pellegrini

355

Imprimante thermique
L'impression ne se fait pas par dpt de
matire sur le papier mais par noircissement
par brlure de la surface du papier
thermosensible
Impression monochrome
Le papier thermosensible vieillit trs mal et
devient trs rapidement illisible

Pour les applications actuelles (terminaux de


paiement), on n'a pas de chariot mobile mais
toute une range de pointes chauffantes
2004-2007, 2012,2013 F. Pellegrini

356

Imprimante jet d'encre


Le principe est le mme que pour l'imprimante
aiguilles : un chariot mobile porte une tte
capable d'imprimer une ligne verticale de
points sur la feuille
L'encre est transfre par micro-jets partir
des buses alignes sur la tte
Chaque injecteur est constitu d'une chambre
dans laquelle l'encre est chauffe jusqu'au
point d'bullition, et s'chappe par la buse de
sortie pour aller frapper le papier
2004-2007, 2012,2013 F. Pellegrini

357

Imprimante laser (1)


Le coeur de l'imprimante est un tambour
rotatif photosensible dont la surface passe
devant plusieurs quipements
Au dbut du cycle d'impression, la surface du
tambour est lectrise un potentiel lev, qui
la rend photosensible
La surface est ensuite balaye par le pinceau
d'un rayon laser, au moyen d'un miroir rotatif
tournant grande vitesse
Le laser dcharge le tambour son point d'impact
En modulant l'nergie du laser, on cre une image
2004-2007, 2012,2013
F. Pellegrini
sous
forme de potentiels sur la surface du tambour

358

Imprimante laser (2)


Le toner, poudre noire lectrostatique, est attire
par la surface encore lectrise du tambour, et
se dpose ensuite sur la surface du papier
Le reste de toner prsent sur le rouleau est
ensuite nettoy, et un nouveau cycle
recommence
La feuille de papier passe elle dans un four qui
cuit le toner et permet qu'il ne parte plus de la
feuille

2004-2007, 2012,2013 F. Pellegrini

359

Imprimante laser (3)


Schma de fonctionnement
Miroir octogonal
rotatif

Laser

Tambour
photosensible
Balai
nettoyeur

Four

Applicateur de
toner

Passage de la
feuille de papier

2004-2007, 2012,2013 F. Pellegrini

360

faire... (1)
Dtailler PCI
Micro-architecture avec tat (coup du champ
JMP destination variable dans le microcode)

2004-2007, 2012,2013 F. Pellegrini

361

Trucs en vrac
Le salon des refuss (pour le moment...)

2004-2007, 2012,2013 F. Pellegrini

362