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 m´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 Proc´edures, 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 L’assembleur ................................... 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 m´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 m´emoire centrale . . . . . . . . . . . . . . . . . 100