Architecture des ordinateurs
Jeremy Fix
9 septembre 2016
ii
Ce support de cours a ´et´e r´ealis´e, notamment, grˆace aux outils suivants :
Latex/TeXLive 2013 (https://www.tug.org/texlive/)
GNU Emacs (https://www.gnu.org/software/emacs/) et l’extension Flyspell (http://
www-sop.inria.fr/members/Manuel.Serrano/flyspell/flyspell.html)
Ubuntu 14.04 (http://www.ubuntu.com/)
inkscape (https://inkscape.org) , ipe 7.1.8 (http://ipe.otfried.org/), tikz (http:
//pgf.sourceforge.net/), l’extension circuitikz (http://www.ctan.org/tex-archive/
graphics/pgf/contrib/circuitikz), l’extension tikz-timing (https://www.ctan.org/pkg/
tikz-timing)
logisim (version originale : http://www.cburch.com/logisim/index.html, fork utilis´e ici :
https://github.com/lawrancej/logisim)
une machine `a caf´e
Ce support de cours est accompagn´e de sujets de TP r´ealis´es sous logisim. Les sujet sont
disponibles `a l’adresse http://malis.metz.supelec.fr/~fix_jer.
Table des mati`eres
1 Codages et op´erations binaires 1
1.1 Repr´esentation des entiers naturels . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Repr´esentation en base p . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Repr´esentation binaire, p=2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 Repr´esentation hexad´ecimale, p=16 . . . . . . . . . . . . . . . . . . . . . . 3
1.1.4 Raccourcis de conversion binaire/hexad´ecimal . . . . . . . . . . . . . . . . . 3
1.1.5 Codage Binary Coded D´ecimal et Codage de Gray . . . . . . . . . . . . . . 4
1.2 Op´erations arithm´etiques sur les repr´esentations non sign´ees . . . . . . . . . . . . . 4
1.3 Repr´esentations et op´erations avec un nombre fix´e de bits . . . . . . . . . . . . . . 6
1.4 Repr´esentation des entiers relatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4.1 Compl´ement eduit et compl´ement vrai . . . . . . . . . . . . . . . . . . . . 8
1.5 Op´erations arithm´etiques sur les repr´esentations sign´ees . . . . . . . . . . . . . . . 9
1.5.1 Additions/Soustractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.6 Repr´esentation des nombres r´eels : virgule fixe et virgule flottante . . . . . . . . . . 10
1.6.1 Repr´esentation par virgule fixe (fixed-point).................. 10
1.6.2 Repr´esentation par virgule flottante (floating-point) ............. 12
1.6.3 Exemple de la repr´esentation en virgule flottante binary-16 . . . . . . . . . 13
1.7 Repr´esentation des caract`eres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.8 Unexemple ........................................ 15
2 La couche physique et la couche logique 17
2.1 Unpeud´electronique .................................. 17
2.1.1 Niveaux logiques et valeurs de tension . . . . . . . . . . . . . . . . . . . . . 17
2.1.2 Transistors CMOS et inverseur . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.3 Portes NAND et NOR `a deux entr´ees . . . . . . . . . . . . . . . . . . . . . 21
2.1.4 Autres portes `a une ou deux entr´ees . . . . . . . . . . . . . . . . . . . . . . 23
2.1.5 Table de erit´e et synth`ese de circuit logique . . . . . . . . . . . . . . . . . 26
2.1.6 Temps de propagation et notion de chemin critique . . . . . . . . . . . . . . 28
2.2 Circuits de logique combinatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.1 D´ecodeur ..................................... 29
2.2.2 Multiplexeur / emultiplexeur . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.3 Al´eastatique ................................... 31
2.2.4 Mutiplexeur : universalit´e et emoire en lecture seule (ROM) . . . . . . . . 32
2.2.5 Unit´e arithm´etique et logique pour les entiers . . . . . . . . . . . . . . . . . 32
2.2.6 Unit´e arithm´etique en virgule flottante . . . . . . . . . . . . . . . . . . . . . 35
2.3 Circuits de logique s´equentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.3.1 Verrou/BasculeRS................................ 36
2.3.2 VerrouD ..................................... 39
2.3.3 Syst`emes logiques synchrones : horloge et fronts montants . . . . . . . . . . 39
2.3.4 Bascule D synchrone sur front montant : maˆıtre esclave . . . . . . . . . . . 40
2.3.5 R´ealisation d’un verrou D avec un mutliplexeur . . . . . . . . . . . . . . . . 41
2.3.6 Registre et emoire RAM (Random Access Memory) . . . . . . . . . . . . 41
2.4 Une premi`ere architecture interne simple d’un microprocesseur . . . . . . . . . . . 43
2.4.1 Registres internes : accumulateurs, registre d’adresse et compteur ordinal . 43
iii
iv TABLE DES MATI `
ERES
2.4.2 S´equencement du chemin de donn´ees . . . . . . . . . . . . . . . . . . . . . . 44
2.4.3 Exemple...................................... 44
3 La couche ISA 53
3.1 Programme et donn´ees en m´emoire . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.1.1 Codage des instructions en emoire . . . . . . . . . . . . . . . . . . . . . . 54
3.1.2 R´ecup´erer l’instruction depuis la m´emoire (fetch)............... 55
3.2 G´en´erer les micro-instructions par une machine `a ´etats finis . . . . . . . . . . . . . 56
3.2.1 Une machine `a ´etats finis pour le fetch . . . . . . . . . . . . . . . . . . . . . 56
3.2.2 Une machine `a ´etats finis par instruction . . . . . . . . . . . . . . . . . . . 57
3.2.3 Une machine `a ´etats finis pour toutes les instructions . . . . . . . . . . . . 59
3.3 S´equencement microprogramm´e du chemin de donn´ees . . . . . . . . . . . . . . . . 59
3.3.1 Circuit logique du s´equenceur microprogramm´e et interface avec le chemin
dedonn´ees .................................... 59
3.3.2 Lesbranchements ................................ 63
3.4 R´ecapitulons ....................................... 67
3.4.1 Architecture ................................... 67
3.4.2 Liste et format des instructions . . . . . . . . . . . . . . . . . . . . . . . . . 68
4 Proedures, pile et pointeur de pile 71
4.1 Motivation ........................................ 71
4.2 La pile : modification du chemin de donn´ees et nouvelles instructions . . . . . . . . 72
4.3 La pile pour passer des arguments et r´ecup´erer des r´esultats . . . . . . . . . . . . . 75
4.4 Appel et retour de routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.5 Exemple : nombre de mouvements pour r´esoudre les tours de Hano¨ı . . . . . . . . 79
5 Traduction, Compilation, interpr´etation 83
5.1 Langage bas niveau : Assembleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.1.1 Quelques ´el´ements de syntaxe de notre langage d’assemblage . . . . . . . . 84
5.1.2 Lassembleur ................................... 84
5.2 Langagedehautniveau ................................. 86
5.2.1 Quelques ´el´ements de langages de haut niveau . . . . . . . . . . . . . . . . 86
5.2.2 Interpr´et´e ou compil´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3 Compilateur........................................ 87
5.3.1 Anatomie d’un compilateur . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3.2 La phase d’analyse (frontend) . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.3.3 G´en´eration et optimisation d’une repr´esentation interm´ediaire . . . . . . . . 89
5.3.4 Laphasedesynth`ese............................... 90
6 La m´emoire 93
6.1 Les diff´erentes formes de emoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.1.1 M´emoire morte (ROM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.1.2 M´emoirevive(RAM) .............................. 94
6.1.3 M´emoire de masse : disque dur . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.1.4 Synth`ese des m´emoires en lecture/´ecriture : vive et de masse . . . . . . . . 96
6.2 Hierarchiedem´emoire.................................. 96
6.2.1 Principe de localit´e spatiale et temporelle . . . . . . . . . . . . . . . . . . . 96
6.2.2 Structure hierarchique de la m´emoire : le meilleur des deux mondes . . . . 97
6.3 M´emoirecache ...................................... 98
6.3.1 Cache `a correspondance directe . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.3.2 Cacheassociatif.................................. 99
6.3.3 Cache associatif `a n entr´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.3.4 Coh´erence du cache et de la emoire centrale . . . . . . . . . . . . . . . . . 100
TABLE DES MATI `
ERES v
7 Les p´eriph´eriques et leur gestion par interruption 103
7.1 Les p´eriph´eriques d’ent´ee/sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.1.1 Quelques exemples de p´eriph´eriques . . . . . . . . . . . . . . . . . . . . . . 103
7.1.2 Connexions entre le processeur et les eriph´eriques . . . . . . . . . . . . . . 104
7.2 ´
Ev`enements synchrones et asynchrones : eroutements et interruptions . . . . . . 107
7.2.1 Lesd´eroutements................................. 107
7.2.2 Lesinterruptions................................. 108
7.3 Examples d’utilisation des interruptions . . . . . . . . . . . . . . . . . . . . . . . . 111
7.3.1 Un programme principal et un bouton . . . . . . . . . . . . . . . . . . . . . 111
7.3.2 Timesharing et ordonnanceur pr´e-emptif . . . . . . . . . . . . . . . . . . . . 113
A Carte de r´ef´erence 117
Bibliographie 121
1 / 127 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !