Professional Documents
Culture Documents
(INF155)
F. Pellegrini
Universit de Bordeaux
Ce document est copiable et distribuable librement et gratuitement la condition expresse que son contenu ne soit modifi en
aucune faon, et en particulier que le nom de son auteur et de son institution d'origine continuent y figurer, de mme que le
prsent texte.
2014,2016 F. Pellegrini
Ordinateur et logiciel
Les technologies numriques sont maintenant
omniprsentes
Elles sont le moteur et l'objet de ce qu'on appelle
la rvolution numrique
Elles sont bases sur l'interaction entre :
Des programmes, aussi appels logiciels,
dcrivant des processus de traitement de
l'information : biens immatriels
Des ordinateurs, capables d'excuter ces
programmes : biens matriels
2014,2016 F. Pellegrini 2
Reprsentation de l'information
L'information est reprsente au sein des
composants de l'ordinateur sous forme de
diffrents tats de la matire :
Trou ou pas trou sur la surface d'un
cdrom ou DVD
Orientation nord ou sud d'un matriau magntique
Lumire ou absence de lumire mise par un laser
Courant lectrique ou non
Ce sont souvent des reprsentations deux
tats, c'est--dire binaires
2014,2016 F. Pellegrini 3
Constituants lmentaires (1)
Presque tous les ordinateurs sont construits
base de circuits lectroniques
Les circuits lectroniques sont raliss au
moyen de transistors
Composant lmentaire, dont le courant de sortie
dpend de deux valeurs d'entre
Un transistor a donc trois pattes
Appeles : base, metteur et collecteur
Analogue un robinet lectricit : plus il
arrive de courant sur la base, plus le courant
circule de l' metteur vers le collecteur
2014,2016 F. Pellegrini 4
Constituants lmentaires (2)
Dans les ordinateurs, on utilise les transistors
en mode satur, c'est--dire tout ou rien
Fonctionnement analogue celui d'un interrupteur
Robinet ferm ou ouvert en grand
Soit le courant passe, soit il ne passe pas du tout
Reprsentation des valeurs binaires 0 et 1
En combinant plusieurs transistors, on peut
effectuer des calculs complexes
Sur la base de montages en srie ou en parallle
Regroupement
2014,2016 F. Pellegrini
au sein de circuits intgrs 5
Performance (1)
Les calculs des ordinateurs sont cadencs par
une horloge
Plus la frquence de l'horloge est leve, et plus
l'ordinateur pourra effectuer d'oprations par
seconde (s'il n'est pas ralenti par autre chose...)
On mesure la frquence d'une horloge en Hertz (Hz)
Nombre de battements par seconde
1 kHz (kilo-Hertz) = 103 Hz
1 MHz (mga-Hertz) = 106 Hz
1 GHz (giga-Hertz) = 109 Hz
1 THz (tra-Hertz) = 1012 Hz
2014,2016 F. Pellegrini 6
Performance (2)
En fait, ce qui importe aux usagers, c'est le
nombre d'oprations (plus gnralement,
d'instructions ) qu'un ordinateur est capable
d'effectuer par seconde
On la mesure en MIPS, pour millions
d'instructions par seconde
On pense souvent que la puissance d'un
ordinateur dpend de sa frquence de
fonctionnement
C'est loin d'tre toujours vrai !
http://en.wikipedia.org/wiki/Instructions_per_second
2014,2016 F. Pellegrini 7
volutions architecturales (1)
1946 : Ordinateur ENIAC
Architecture base de lampes et tubes vide : 30
tonnes, 170 m2 au sol, 5000 additions par seconde
0,005 MIPS, dirons-nous...
1947 : Invention du transistor
1958 : Invention du circuit intgr sur silicium
Multiples transistors agencs sur le mme substrat
2014,2016 F. Pellegrini 8
volutions architecturales (2)
1971 : Processeur Intel 4004
2300 transistors dans un unique circuit intgr
Frquence de 740 kHz, 0,092 MIPS
40 ans d'une histoire trs riche...
2011 : Processeur Intel Core i7 2600K
Plus de 1,4 milliards de transistors
Frquence de 3,4 GHz
4 curs, 8 threads
128300 MIPS http://en.wikipedia.org/wiki/Sandy_Bridge
2014,2016 F. Pellegrini 9
volutions architecturales (3)
Entre le 4004 et le Core i7 2600K :
La frquence a t multiplie par 4600
La puissance en MIPS a t multiplie par 1,4 million
La puissance d'un ordinateur ne dpend
clairement pas que de sa frquence !
Intrt d'tudier l'architecture des ordinateurs
pour comprendre :
O les gains se sont oprs
Ce qu'on peut attendre dans le futur proche
2014,2016 F. Pellegrini 10
Barrire de la chaleur (1)
Plus on a de transistors par unit de surface,
plus on a d'nergie vacuer
La dissipation thermique volue de faon
proportionnelle V2*F
La tension de fonctionnement des circuits a t
abaisse
De 5V pour les premires gnrations 0,9V maintenant
Il n'est plus vraiment possible de la diminuer avec
les technologies actuelles
Le bruit thermique causerait trop d'erreurs
2014,2016 F. Pellegrini 11
Barrire de la chaleur (2)
La frquence ne peut raisonnablement
augmenter au del des 5 GHz
Barrire de la chaleur
La tendance est plutt la rduction
Green computing
On s'intresse maintenant maximiser le nombre
d'oprations par Watt
Mais on veut toujours plus de puissance de calcul !
2014,2016 F. Pellegrini 12
Barrire de la complexit (1)
surface constante, le nombre de transistors
double tous les 2 ans
Loi de Moore , du nom de Gordon Moore, co-
fondateur d'Intel, nonce en 1965
Diminution continuelle de la taille de gravage des
transistors et circuits sur les puces de silicium
On grave actuellement avec un pas de 14 nm
Limites atomiques bientt atteintes...
Donc plus possible d'intgrer plus
Mais on veut toujours plus de puissance de calcul !
2014,2016 F. Pellegrini 13
Barrire de la complexit (2)
Que faire de tous ces transistors ?
On ne voit plus trop comment utiliser ces transistors
pour amliorer individuellement les processeurs
Des processeurs trop complexes consomment trop
d'nergie sans aller beaucoup plus vite
Seule solution actuellement : faire plus de
processeurs sur la mme puce !
Processeurs bi-curs, quadri-coeurs, octo-curs,
dj jusqu' 128 curs !
Mais comment les programmer efficacement ?!
2014,2016 F. Pellegrini 14
Barrire de la complexit (3)
L'architecture des ordinateurs a t l'un des
secteurs de l'informatique qui a fait le plus de
progrs
Les ordinateurs d'aujourd'hui sont trs
complexes
Plus d'un milliard de transistors dans un processeur
Ncessit d'tudier leur fonctionnement
diffrents niveaux d'abstraction
Du composant au module, du module au systme
Multiples niveaux de hirarchie
2014,2016 F. Pellegrini 15
Structure d'un ordinateur (1)
Un ordinateur est une machine programmable
de traitement de l'information
Pour accomplir sa fonction, il doit pouvoir :
Acqurir de l'information de l'extrieur
Stocker en son sein ces informations
Combiner entre elles les informations sa
disposition
Restituer ces informations l'extrieur
2014,2016 F. Pellegrini 16
Structure d'un ordinateur (2)
L'ordinateur doit donc possder :
Une ou plusieurs units de stockage, pour
mmoriser le programme en cours d'excution
ainsi que les donnes qu'il manipule
Une unit de traitement permettant l'excution
des instructions du programme et des calculs sur
les donnes qu'elles spcifient
Diffrents dispositifs priphriques servant
interagir avec l'extrieur : clavier, cran, souris,
carte graphique, carte rseau, etc.
2014,2016 F. Pellegrini 17
Structure d'un ordinateur (3)
Les constituants de l'ordinateur sont relis
par un ou plusieurs bus, ensembles de fils
parallles servant la transmission des
adresses, des donnes, et des signaux de
contrle Mmoire
graphique
Unit de Contrleur
Mmoire Contrleur
traitement de bus
centrale graphique
(processeur) AGP Bus AGP
Bus local
Contrleur Contrleur
de disque de bus
dur IDE/ATA PCI Bus PCI
Carte Carte
d'extension d'extension
2014,2016 F. Pellegrini 18
Unit de traitement (1)
L'unit de traitement (ou CPU, pour Central
Processing Unit ), aussi appele
processeur , est le cur de l'ordinateur
Elle excute les programmes chargs en
mmoire centrale en extrayant l'une aprs
l'autre leurs instructions, en les analysant, et
en les excutant
2014,2016 F. Pellegrini 19
Unit de traitement (2)
L'unit de traitement est compos de plusieurs
sous-ensembles distincts
L'unit de contrle, qui est responsable de la
recherche des instructions partir de la mmoire
centrale et du dcodage de leur type
L'unit arithmtique et logique (UAL), qui effectue
les oprations spcifies par les instructions
Un ensemble de registres, zones mmoires rapides
servant au stockage temporaire des donnes en
cours de traitement par l'unit centrale
2014,2016 F. Pellegrini 20
Registres
Chaque registre peut stocker une valeur
entire distincte, borne par la taille des
registres (nombre de bits)
Certains registres sont spcialiss, comme :
le compteur ordinal ( program counter ) qui
stocke l'adresse de la prochaine instruction
excuter
le registre d'instruction ( instruction register ),
qui stocke l'instruction en cours d'excution
l'accumulateur, registre rsultat de l'UAL, etc.
2014,2016 F. Pellegrini 21
Chemin de donnes (1)
Le chemin de donnes reprsente la structure
interne de l'unit de traitement
Comprend les registres, l'UAL, et un ensemble de
bus internes ddis
L'UAL peut possder ses propres registres destins
mmoriser les donnes d'entres afin de
stabiliser leurs signaux pendant que l'UAL calcule
Le chemin des donnes conditionne fortement
la puissance des machines
Pipe-line, superscalarit,
2014,2016 F. Pellegrini 22
Chemin de donnes (2)
Chemin de donnes d'une machine de type
Von Neumann
A+B
A Registres gnraux
B
A B
Registres
d'entre de l'UAL
UAL
A+B
Registre de sortie
de l'UAL
2014,2016 F. Pellegrini 23
Excution d'une instruction (1)
L'excution d'une instruction par l'unit
centrale s'effectue selon les tapes suivantes :
1 Charger la prochaine instruction excuter depuis
la mmoire vers le registre d'instruction
2 Dcoder (analyser) l'instruction venant d'tre lue
3 Faire pointer le compteur ordinal vers l'instruction
suivante (y compris dans le cas de branchements)
4 Localiser en mmoire les donnes ncessaires
5 Charger si ncessaire les donnes dans l'UAL
6 Excuter l'instruction, puis recommencer
2014,2016 F. Pellegrini 24
Architecture des ordinateurs
Les ordinateurs modernes sont conus
comme un ensemble de couches
Chaque couche reprsente une abstraction
diffrente, capable d'effectuer des oprations
et de manipuler des objets spcifiques
L'ensemble des types de donnes, des
oprations, et des fonctionnalits de chaque
couche est appele son architecture
L'tude de la conception de ces parties est
appele architecture des ordinateurs
2014,2016 F. Pellegrini 25
Machines multi-couches actuelles
5 Langages d'application
Traduction (compilateur)
4 Langage d'assemblage
Traduction (assembleur)
3 Systme d'exploitation
Interprtation partielle (SE)
2 Jeu d'instructions
Interprtation ou excution
1 Microarchitecture
Matriel
0 Logique numrique
2014,2016 F. Pellegrini 26
Couche logique numrique
Les objets considrs ce niveau sont les
portes logiques, chacune construite partir de
quelques transistors
Chaque porte prend en entre des signaux
numriques (0 ou 1) et calcule en sortie une
fonction logique simple (ET, OU, NON)
De petits assemblages de portes peuvent
servir raliser des fonctions logiques telles
que mmoire, additionneur, ainsi que la logique
de contrle de l'ordinateur
2014,2016 F. Pellegrini 27
Couche microarchitecture
On dispose ce niveau de plusieurs registres
mmoire et d'un circuit appel UAL (Unit
Arithmtique et Logique, ALU) capable de
raliser des oprations arithmtiques
lmentaires
Les registres sont relis l'UAL par un chemin
de donnes permettant d'effectuer des
oprations arithmtiques entre registres
Le contrle du chemin de donnes est soit
microprogramm, soit matriel
2014,2016 F. Pellegrini 28
Couche jeu d'instruction
La couche de l'architecture du jeu
d'instructions (Instruction Set Architecture,
ISA) est dfinie par le jeu des instructions
disponibles sur la machine
Ces instructions peuvent tre excutes par
microprogramme ou bien directement
2014,2016 F. Pellegrini 29
Couche systme d'exploitation
Cette couche permet de bnficier des
services offerts par le systme d'exploitation
Organisation mmoire, excution concurrente
La plupart des instructions disponibles ce
niveau sont directement traites par les
couches infrieures
Les instructions spcifiques au systme font
l'objet d'une interprtation partielle (appels
systme)
2014,2016 F. Pellegrini 30
Couche langage d'assemblage
Offre une forme symbolique aux langages
des couches infrieures
Permet des humains d'interagir avec les
couches infrieures
2014,2016 F. Pellegrini 31
Couche langages d'application
Met la disposition des programmeurs
d'applications un ensemble de langages
adapts leurs besoins
Langages dits de haut niveau
2014,2016 F. Pellegrini 32
Comment aborder tout cela ?
Approches courante : de bas en haut pour
les besoins, puis de haut en bas pour les
solutions
Travaux pratiques difficiles au dbut...
Par deux fronts la fois :
partir de la couche ISA
Programmation en langage machine : y86
partir des transistors et portes logiques
Construction de circuits sur papier
2014,2016 F. Pellegrini 33
Circuits logiques
Un circuit logique est un circuit qui ne
manipule que deux valeurs logiques : 0 et 1
l'intrieur des circuits, on reprsente
typiquement un tat 0 par un signal de basse
tension (proche de 0V) et un tat 1 par un
signal de haute tension (5V, 3,3V, 2,5V, 1,8V
ou 0,9V selon les technologies)
De minuscules dispositifs lectroniques,
appeles portes , peuvent calculer
diffrentes fonctions partir de ces signaux
2014,2016 F. Pellegrini 34
Transistors (1)
L'lectronique numrique repose sur le fait
qu'un transistor peut servir de commutateur
logique extrmement rapide
Deux technologies majeures :
Bipolaire : temps de commutation trs rapide
mais consommation leve
Registres, SRAM, circuits spcialiss
CMOS : temps de commutation moins rapide
mais consommation beaucoup moins leve
90 % des circuits sont raliss en CMOS
35
Transistors (2)
Avec un transistor bipolaire ou deux
transistors CMOS, on peut crer un premier
circuit combinatoire :
Grille +Vcc
+Vcc Source
Collecteur Drain
VS VA VS
VA
Drain
Source
Base metteur Grille
2014,2016 F. Pellegrini Bipolaire CMOS 36
Transistors (3)
Quand VA est bas, VS est haut
+Vcc
+Vcc
VS VA VS
VA
2014,2016 F. Pellegrini 37
Transistors (4)
Quand VA est bas, VS est haut
Quand VA est haut, VS est bas
Ce circuit est un inverseur +Vcc
+Vcc
VS VA VS
VA
2014,2016 F. Pellegrini 38
Transistors (5)
+Vcc
En combinant quatre
transistors CMOS, on
peut obtenir un circuit VA VB
tel que VS n'est dans
l'tat bas que quand
VA et VB sont tous les VS
VB
2014,2016 F. Pellegrini 39
Transistors (6)
+Vcc
En combinant quatre
transistors CMOS, on VA
peut obtenir un circuit
tel que VS est dans VB
l'tat bas si VA ou VB,
VS
ou bien les deux, sont
dans l'tat haut
VA VB
2014,2016 F. Pellegrini 40
Portes logiques (1)
En identifiant l'tat haut la valeur 1 et l'tat
bas la valeur 0, on peut exprimer la valeur
de sortie de ces trois circuits partir des
valeurs de leurs entres
A A
A S S S
B B
A S A B S A B S
0 1 0 0 1 0 0 1
1 0 0 1 1 0 1 0
1 0 1 1 0 0
1 1 0 1 1 0
NON NAND NOR
2014,2016 F. Pellegrini 41
Portes logiques (2)
Quelle que soit la technologie, les portes NAND
et NOR ncessitent moins de transistors que les
portes AND et OR, qui ncessitent un inverseur
en plus
Les circuits des ordinateurs sont donc plutt
construits avec des portes NAND et NOR
Ces portes ont parfois plus de deux entres, mais en
ont rarement plus de 8 (problme de fan-in/out )
Les portes NAND et NOR sont dites compltes ,
car tout circuit peut tre implant uniquement au
moyen de l'un de ces types de portes
2014,2016 F. Pellegrini 42
Algbre boolenne
Pour dcrire les circuits ralisables en
combinant des portes logiques, on a besoin
d'une algbre oprant sur les variables 0 et 1
Algbre boolenne
G. Boole : 1815 1864
Algbre binaire tudie par Leibniz ds 1703
2014,2016 F. Pellegrini 43
Fonctions boolennes (1)
Une fonction boolenne une ou plusieurs
variables est une fonction qui renvoie une
valeur ne dpendant que de ces variables
La fonction NON est ainsi dfinie comme :
f(A) = 1 si A = 0
f(A) = 0 si A = 1
2014,2016 F. Pellegrini 44
Fonctions boolennes (2)
Une fonction boolenne n variables a
seulement 2n combinaisons d'entres possibles
Elle peut tre compltement dcrite par une
table 2n lignes donnant la valeur de la fonction
pour chaque combinaison d'entres
Table de vrit de la fonction
Elle peut aussi tre dcrite par le nombre 2n
bits correspondant la lecture verticale de la
colonne de sortie de la table
NAND : 1110, NOR : 1000, AND : 0001, etc.
2014,2016 F. Pellegrini 45
Fonctions boolennes (3)
Toute fonction peut tre dcrite en spcifiant
lesquelles des combinaisons d'entre
donnent 1
On peut donc reprsenter une fonction
logique comme le ou logique (OR) d'un
ensemble de conditions et (AND) sur les
combinaisons d'entre
2014,2016 F. Pellegrini 46
Fonctions boolennes (4)
En notant :
A le NOT de A
A + B le OR de A et B
A.B ou AB le AND de A et B
on peut reprsenter une fonction comme
somme logique de produits logiques
Par exemple :
ABC vaut 1 seulement si A = 1 et B = 0 et C = 1
AB + BC vaut 1 si et seulement si (A = 1 et B = 0)
ou bien (B = 1 et C = 0)
2014,2016 F. Pellegrini 47
Fonctions boolennes (5)
Exemple : la fonction majorit M
A B C A B C
A B C M
A
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
M
1 0 0 0 B
1 0 1 1
1 1 0 1
C
1 1 1 1
2014,2016 F. Pellegrini 48
Fonctions boolennes (6)
Toute fonction logique de n variables peut donc
tre dcrite sous la forme d'une somme logique
d'au plus 2n produits de termes
Par exemple : M = ABC + ABC + ABC + ABC
Cette formulation fournit une mthode directe
pour implanter n'importe quelle fonction
boolenne
2014,2016 F. Pellegrini 49
Simplification de l'implantation (1)
Deux fonctions sont quivalentes si et
seulement si leurs tables de vrit sont
identiques
Il est intressant d'implanter une fonction
avec le moins de portes possible
conomie de place sur le processeur
Rduction de la consommation lectrique
Rduction du temps de parcours du signal
L'algbre boolenne peut tre un outil efficace
pour simplifier les fonctions
2014,2016 F. Pellegrini 50
Simplification de l'implantation (2)
La plupart des rgles de l'algbre ordinaire
restent valides pour l'algbre boolenne
Exemple : AB + AC = A (B + C)
On passe de trois portes deux
Le nombre de niveaux de portes reste le mme
2014,2016 F. Pellegrini 51
Simplification de l'implantation (3)
Pour rduire la complexit des fonctions
boolennes, on essaye d'appliquer des
identits simplificatrices la fonction initiale
Besoin d'identits remarquables pour
l'algbre boolenne
2014,2016 F. Pellegrini 52
Identits boolennes (1)
2014,2016 F. Pellegrini
XOR 55
Porte XOR (2)
A
B
A XOR B
A
B
A
B
A XOR B
A
B
A
B
A XOR B
A
B
2014,2016 F. Pellegrini 56
Fonctions logiques lmentaires
Pour raliser des circuits logiques complexes,
on ne part pas des portes logiques elles-
mmes mais de sous-ensembles fonctionnels
tels que :
Fonctions combinatoires et arithmtiques
Horloges
L'implantation elle-mme peut se faire
diffrents niveaux d'intgration
PLD, SRAM, ASICs, FPGAs, ...
2014,2016 F. Pellegrini 57
Fonctions combinatoires
Une fonction combinatoire est une fonction
possdant des entres et des sorties multiples,
telles que les valeurs des sorties ne dpendent
que des valeurs d'entre
Cette classe comprend les fonctions telles que :
Dcodeurs
Multiplexeurs
Comparateurs
...
2014,2016 F. Pellegrini 58
Dcodeur (1)
Un dcodeur est une fonction qui prend un
nombre binaire C n bits en entre et se sert
de celui-ci pour slectionner l'une de ses 2n
sorties Si
2014,2016 F. Pellegrini 59
Dcodeur (2)
S0
S1
S2
C2
S3
S4
C1 S5
S6
S7
C0
2014,2016 F. Pellegrini 60
Multiplexeur (1)
Un multiplexeur est une fonction possdant
2n entres de donnes Di, une unique sortie
et n entres de contrle Cj servant
slectionner l'une des entres
La valeur de l'entre slectionne est
rpercute (route) sur la sortie
Les n entres de contrle codent un nombre
binaire n bits C spcifiant le numro de
l'entre slectionne
2014,2016 F. Pellegrini 61
Multiplexeur (2)
D0
D1
D2
D3
D4 F
D5
D6
D7
C2 C2 C1 C1 C0 C0
2014,2016 F. Pellegrini 62
Multiplexeur (3)
Implantation d'un multiplexeur partir d'un
dcodeur S 0
D0
S1
D1
S2
D2
S3
D3
F
S4
D4
S5
D5
S6
D6
S7
D7
C2 C1 C0
2014,2016 F. Pellegrini 63
Multiplexeur (4)
Utilisation d'un multiplexeur pour implanter la
fonction majorit D0
D1
D2
D3
F
D4
D5
D6
D7
VCC
C2 C1 C0
2014,2016 F. Pellegrini 64
Comparateur (1)
Un comparateur est une fonction qui
compare deux mots et qui produit 1 s'ils sont
gaux bit bit ou 0 sinon
On le construit partir de portes XOR, qui
produisent 1 si deux bits en regard sont
diffrents
2014,2016 F. Pellegrini 65
Comparateur (2)
A0
B0
A1
B1
A=B
A2
B2
A3
B3
2014,2016 F. Pellegrini 66
Fonctions arithmtiques
Les fonctions arithmtiques sont des
fonctions logiques reprsentant des
oprations arithmtiques simples telles que :
Additionneur
Dcaleur
Unit arithmtique et logique
2014,2016 F. Pellegrini 67
Additionneur (1)
Tous les processeurs disposent d'un ou
plusieurs circuits additionneurs
Ces additionneurs sont implants partir de
fonctions appeles demi-additionneurs
A B C S A
S
0 0 0 0 B
0 1 0 1
1 0 0 1 C
1 1 1 0
S : Somme
C : Retenue ( carry )
2014,2016 F. Pellegrini 68
Additionneur (2)
En fait, pour additionner deux bits situs au
milieu d'un mot, il faut aussi prendre en compte
la retenue provenant de l'addition du bit
prcdent et propager sa retenue au bit suivant
1 1
1 0 0 1 1 0 1 0
+ 0 1 0 1 1 0 0 1
1 1 1 1 0 0 1 1
2014,2016 F. Pellegrini 69
Additionneur (3)
On utilise donc deux demi-additionneurs pour
raliser une tranche d'additionneur complet
Cin
A B Cin Cout S
0 0 0 0 0 A S
0 1 0 0 1 B
1 0 0 0 1
1 1 0 1 0
0 0 1 0 1
0 1 1 1 0
1 0 1 1 0
1 1 1 1 1
2014,2016 F. Pellegrini Cout 70
Unit arithmtique et logique (1)
La plupart des ordinateurs combinent au sein
d'un mme circuit les fonctions arithmtiques
et logiques permettant de calculer l'addition, la
soustraction, le AND ou le OU de deux mots
machines : c'est l'Unit Arithmtique et
Logique
Le type de la fonction a calculer est dtermin
par des entres de contrle
2014,2016 F. Pellegrini 71
Unit arithmtique et logique (2)
Cin
AB
INVA
A A+B
ENA X
_
B B
ENB
Unit
logique
...Multiplexeur
F0
F1
Additionneur
2014,2016 F. Pellegrini 72
Unit arithmtique et logique (2)
Pour oprer sur des mots de n bits, l'UAL est
constitue de la mise en srie de n tranches
d'UAL de 1 bit
Pour l'addition, on chane les retenues et on
injecte un 0 dans l'additionneur de poids faible
Ripple Carry Adder , en fait peu efficace
F0-1 A5 B5 A4 B4 A3 B3 A2 B2 A1 B1 A0 B0
X5 X4 X3 X2 X1 X0
2014,2016 F. Pellegrini 73
Additionneur - Soustracteur (1)
En notation complment deux , l'oppos
d'un nombre est obtenu :
En complmentant tous les bits de ce nombre
En ajoutant 1 au rsultat
Soustraire A B revient calculer B+(-A), ce
qui peut se faire :
En ajoutant B au complment de A
En ajoutant 1 au rsultat
2014,2016 F. Pellegrini 74
Additionneur - Soustracteur (2)
L'unit arithmtique et logique dispose dj
de toute la circuiterie ncessaire !
La broche INVA permet d'effectuer la
complmentation des bits de A avant l'addition
Il suffit d'injecter un 1 au lieu d'un 0 dans la
retenue de l'additionneur de poids faible
F0-1 A5 B5 A4 B4 A3 B3 A2 B2 A1 B1 A0 B0
X5 X4 X3 X2 X1 X0
2014,2016 F. Pellegrini 75
Horloge (1)
Dans de nombreux circuits numriques, il est
essentiel de pouvoir garantir l'ordre dans
lequel certains vnements se produisent
Deux vnements doivent absolument avoir lieu
en mme temps
Deux vnements doivent absolument se produire
l'un aprs l'autre
98 % des circuits numriques sont synchrones
Ncessit de disposer d'une horloge pour
synchroniser les vnements entre eux
2014,2016 F. Pellegrini 76
Horloge (2)
Une horloge est un circuit qui met de faon
continue une srie d'impulsions caractrises
par :
La longueur de l'impulsion
L'intervalle entre deux pulsations successives,
appel temps de cycle de l'horloge
Longueur d'impulsion
Temps de cycle
2014,2016 F. Pellegrini 77
Cycles et sous-cycles (1)
Dans un ordinateur, de nombreux vnements
ont se produire au cours d'un cycle d'horloge
Si ces vnements doivent tre squencs
dans un ordre prcis, le cycle d'horloge doit
tre dcompos en sous-cycles
Un moyen classique pour cela consiste
retarder la copie d'un signal d'horloge primaire
afin d'obtenir un signal secondaire dcal en
phase C1
Retard C2
2014,2016 F. Pellegrini 78
Cycles et sous-cycles (2)
On dispose alors de quatre bases de temps
au lieu de deux
Fronts montant et descendant de C1
Fronts montant et descendant de C2
C1
C2
2014,2016 F. Pellegrini 79
Cycles et sous-cycles (3)
Pour certaines fonctions, on s'intressera
plutt aux intervalles qu' des instants prcis
Action possible seulement lorsque C1 est haut
On peut alors construire des sous-intervalles
en s'appuyant sur les signaux original et
retard
C1
C2
__ __
C3 = C1C2 + C1C2
2014,2016 F. Pellegrini 80
Mmoire (1)
La mmoire principale sert au stockage des
programmes et de leurs donnes
L'unit lmentaire de mmoire est le bit,
pour binary digit ( chiffre binaire ),
prenant deux valeurs, 0 ou 1
Le stockage physique des bits dpend des
technologies employes : diffrentiels de
tension, moments magntiques, cuvettes ou
surfaces planes, mission de photons ou
non, etc.
2014,2016 F. Pellegrini 81
Mmoire (2)
Pour stocker les informations, il faut un circuit
capable de se souvenir de la dernire valeur
d'entre qui lui a t fournie
la diffrence d'une fonction combinatoire, sa
valeur ne dpend donc pas que de ses valeurs
d'entre courantes
Prsence de boucles de rtroaction pour prserver
l'tat courant
On peut construire un tel circuit partir de deux
portes NAND ou deux portes NOR reboucles
2014,2016 F. Pellegrini 82
Bascule SR
Une bascule SR est une fonction qui a deux
entres et deux sorties
Une entre S pour positionner la bascule
Une entre R pour rinitialiser la bascule
Deux sorties Q et Q complmentaires l'une de
l'autre S
Q
Q
R
2014,2016 F. Pellegrini 83
Bascule SR tat 0
Si S et R valent 0, et que Q vaut 0, alors :
Q vaut 1
Les deux entres de la porte du bas sont 0 et 1,
donc Q vaut 0
Cette configuration est cohrente et stable
0
S 1
0 Q
1
0
0 Q
R
2014,2016 F. Pellegrini 84
Bascule SR tat 1
Si S et R valent 0, et que Q vaut 1, alors :
Q vaut 0
Les deux entres de la porte du bas sont 0 et 0,
donc Q vaut 1
Cette configuration est cohrente et stable
0
S 0
1 Q
0
1
0 Q
R
2014,2016 F. Pellegrini 85
Bascule SR tats stables
Lorsque S et R valent 0 :
On ne peut avoir simultanment Q 0 et Q 0
On ne peut avoir simultanment Q 1 et Q 1
La bascule possde deux tats stables, tels
que Q = 0 ou Q = 1
0
S
Q
0 Q
R
2014,2016 F. Pellegrini 86
Bascule SR Mise 1
Lorsque S vaut 1, que Q vaille 0 ou 1 :
La sortie de la porte du haut vaut 0, donc Q vaut 0
La sortie de la porte du bas vaut 1, donc Q vaut 1
Cet tat est stable
Mme lorsque S repasse 0, Q reste 1
1 1
S 1 0 S 0
1 0 Q 1 Q
0 1 0
0 1 1
0 Q 0 Q
R R
2014,2016 F. Pellegrini 87
Bascule SR Mise 0
Lorsque R vaut 1, que Q vaille 0 ou 1 :
La sortie de la porte du bas vaut 0, donc Q vaut 0
La sortie de la porte du haut vaut 1, donc Q vaut 1
Cet tat est stable
Mme lorsque R repasse 0, Q reste 0
0 0
S 1 S 0 1
0 Q 0 1 Q
1 1 0
0 1 0
1 Q 1 Q
R R
2014,2016 F. Pellegrini 88
Bascule SR Rsum (1)
Lorsque S vaut temporairement 1, la bascule
se stabilise dans l'tat Q = 1, quel que soit
son tat antrieur
Lorsque R vaut temporairement 1, la bascule
se stabilise dans l'tat Q = 0, quel que soit
son tat antrieur
La fonction mmorise laquelle des entres S
ou R a t active en dernier
Cette fonction peut servir de base la
cration de mmoires
2014,2016 F. Pellegrini 89
Bascule SR Rsum (2)
Cependant, l'tat de la bascule peut tre
indtermin
Lorsque S et R sont simultanment 1, on est
dans un tat stable dans lequel Q et Q valent 0
Lorsque S et R repassent simultanment 0,
l'tat final de la bascule est non prvisible
1
S 0
0 Q
0
0
1 Q
R
2014,2016 F. Pellegrini 90
Bascule D (1)
Pour viter cela, on n'a qu'un seul signal D
Destin l'entre S, et que l'on inverse pour R
On commande la bascule par un signal d'activation
On a une mmoire 1 bit
D
Q
CK
2014,2016 F. Pellegrini 91
Bascule D (2)
Pour que l'on soit sr que la valeur conserve
en mmoire soit bien celle prsente en dbut
de cycle d'criture, il faudrait n'autoriser
l'criture qu'au dbut du cycle, sur le front
montant du signal d'criture
a
b
a b
CK d
c c
2014,2016 F. Pellegrini 92
Bascule D (3)
Il existe ainsi plusieurs types de bascules D :
Active par CK l'tat haut D Q
_
CK Q
_
CK Q
_
CK Q
_
CK Q
2014,2016 F. Pellegrini 93
Adressage mmoire (1)
Les mmoires informatiques sont organises
comme un ensemble de cellules pouvant
chacune stocker une valeur numrique
Chaque cellule possde un numro unique,
appel adresse, auquel les programmes
peuvent se rfrer
Toutes les cellules d'une mmoire
contiennent le mme nombre de bits
n
Une cellule de n bits peut stocker 2 valeurs
numriques diffrentes
2014,2016 F. Pellegrini 94
Adressage mmoire (2)
Deux cellules mmoire adjacentes ont des
adresses mmoires conscutives
Les ordinateurs, bass sur le systme
binaire, reprsentent galement les adresses
sous forme binaire
Une adresse sur m bits peut adresser 2m
cellules distinctes, indpendamment du
nombre de bits contenus dans chaque cellule
2014,2016 F. Pellegrini 95
Adressage mmoire (3)
La cellule est la plus petite unit mmoire
pouvant tre adresse
Il y a maintenant consensus autour d'une cellule
8 bits, appele octet ( byte en anglais)
Afin d'tre plus efficaces, les units de
traitement ne manipulent plus des octets
individuels mais des mots de plusieurs octets
4 octets par mot pour une machine 32 bits
La plupart des mmoires travaillent aussi par
mots
2014,2016 F. Pellegrini 96
Principe d'un circuit mmoire (1)
I0-I2
D Q DQ DQ
CK CK CK
D Q D Q D Q
CK CK CK
A0
A1
D Q D Q D Q
CK CK CK
D Q D Q D Q
CK CK CK
CS
RD
OE O0-O2
2014,2016 F. Pellegrini 97
Principe d'un circuit mmoire (2)
Mmoire 4 mots de 3 bits
Ce circuit possde trois broches de commande
CS ( chip select ) : actif pour slectionner ce
circuit mmoire
RD ( read ) : positionn 1 si l'on souhaite raliser
une lecture, et 0 si l'on souhaite une criture
OE ( output enable ) : positionn 1 pour activer
les lignes de sortie
Utilise des interrupteurs trois tats (0, 1, dconnect)
Permet de connecter I0-I2 et O0-O2 sur les mmes lignes
de donnes
2014,2016 F. Pellegrini 98
Types de mmoire
Plusieurs critres caractrisent les mmoires
Type d'accs
Accs alatoire : RAM R/W, (((E)E)P)ROM, Flash
FIFO : registres dcalage
Possibilit d'criture
Pas : ROM
Unique : PROM
Multiple : RAM R/W, (E)EPROM, Flash
Volatilit
Les donnes stockes ne sont conserves que tant que
la mmoire est alimente lectriquement
2014,2016 F. Pellegrini 99
Mmoire RAM (1)
Random Access Memory
Les mots de la mmoire peuvent tre accds sur
demande dans n'importe quel ordre
Cette catgorie comprend en thorie toutes
les mmoires accs alatoire telles que
mmoires volatiles, (((E)E)P)ROM, Flash, etc.
Dans le langage courant ce terme est utilis
pour dsigner uniquement la mmoire volatile
Compteur ordinal
Mmoire du
micro-code Chemin de Mmoire
donnes
(implmentation
en un seul cycle)
(implmentation
en un seul cycle)
opcode rs rt immediate
Type J (branchement)
31
31 26 25 26 25 0
opcode adresse
2014,2016 F. Pellegrini 115
Contrle du chemin de donnes (1)
_
Imm value imm enable st enable msel r/w
5 5 5 tendue 32b
LF ld enable
ALS 0001 : AND ST
00 : Arithmtique 0011 : A 00 : Pas de dcalage _
01 : Logique 0101 : B 01 : Arithmtique SD a/s
10 : Dcalage 0110 : XOR 10 : Logique 0 : Dcalage gauche 0 : Ajoute
11 : Desactive 0111 : OR 11 : Rotation 1 : Dcalage droite 1 : Soustrait
2014,2016 F. Pellegrini 116
Contrle du chemin de donnes (2)
La logique de contrle du micro-code associe
chaque (micro-)instruction un mot binaire
commandant le chemin de donnes
Exemple : mise zro des mots mmoire situs
aux adresses 0x0100 et 0x0104
Signaux de contrle du chemin de donnes
! !
Opcode
tat initial
SUBI SP,2 0
LD R[X],[RSP] 1
Adresse de la premire
instruction dans la
2014,2016 F. Pellegrini mmoire du micro-code Mmoire du micro-code 119
Interprtation du micro-code (3)
Instruction suivante
2014,2016 F. Pellegrini 120
Pile (1)
Presque tous les langages de programmation
incluent le concept de procdure disposant de
paramtres d'appel et de variables locales
Ces variables peuvent tre accdes pendant
l'excution de la procdure mais pas depuis la
procdure appelante
Elles ne peuvent rsider une adresse absolue en
mmoire, car cela empcherait la rentrance
Ncessit de crer dynamiquement des
instances de ces variables lors des appels de
procdures et de les supprimer la fin
2014,2016 F. Pellegrini 121
Pile (2)
Une pile est une zone de la mmoire que l'on
n'accde jamais de faon absolue mais
toujours relativement un registre
Gre au moyen d'un registre ddi, le
pointeur de pile ( Stack Pointer , ou SP)
Pointe sur le dernier mot mmoire allou
Instructions ddies l'empilage et au dpilage :
De donnes : push/pop
D'adresses de retour : call/ret
Chargement de registres :
2014,2016 F. Pellegrini 139
Adressage direct
Une mthode pour accder une valeur en
mmoire consiste donner son adresse pour
qu'on puisse y accder directement
On accdera toujours la mme zone mmoire
Rserv aux variables globales dont les
adresses sont connues la compilation
DS BX EBX
BH BL
ES CX ECX
CH CL
FS DX EDX
DH DL
GS ESI
SS EDI
EIP EBP
EFLAGS ESP
32
Mmoire organise en 16384 segments de 2
octets
2014,2016 F. Pellegrini 162
Architecture ISA du Pentium II (4)
La structure des instructions est complexe et
irrgulire
Code opration expansif
Octets 0-5 1-2 0-1 0-1 0-4 0-4
Prfixe Opcode Mode SIB Dplacement Immdiat
Bits 6 1 1 2 3 3
Instruction Scale Index Base
2 3 3
Mod Reg R/M
2014,2016 F. Pellegrini 163
Circuits synchrones (1)
En l'absence de synchronisation, les rsultats
des calculs des circuits avec boucle de
rtroaction seraient inexploitables car faux
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
L S P
L S P
L S P
L S P
L S P
L S P
L S P
L S P
Dpendance de Dpendance de
rsultat contrle
add r2,r3,r1 bz r4,etiq
div r1,r4,r1
mov [A],r1 etiq: ...
2014,2016 F. Pellegrini 180
Dpendances d'instructions (3)
Lorsque le processeur n'est pas pipe-lin, des
instructions dpendantes peuvent tre
excutes l'une aprs l'autre sans problme
Le rsultat de l'instruction prcdente est connu
au moment o on en a besoin pour la suivante
add r2,r3,r1 F D E M WB
add r4,r1,r4 F D E M WB