Le microprocesseur 4
Aspects logiciels
Philippe Darche
Iste éditions
Avant-propos1
Chapitre 1. Codage et modes d'adressage5
1.1. Codage et format d'une instruction5
1.2. Modes d'adressage13
1.2.1. Adressage immédiat15
1.2.2. Adressage de registre16
1.2.2.1. Adressage explicite16
1.2.2.2. Adressage implicite17
1.2.3. Adressage de la mémoire18
1.2.3.1. Adressage direct18
1.2.3.2. Adressage relatif20
1.2.3.3. Adressage indirect21
1.2.3.4. Adressages indexé et basé23
1.2.3.5. Combinaisons de modes d'adressage26
1.2.4. Autres modes d'adressage29
1.2.4.1. Adressage de mémoire à mémoire30
1.2.4.2. Adressage (implicite) de la pile30
1.2.4.3. Adressage au niveau du bit30
1.2.4.4. Adressage MMR31
1.2.4.5. Modes d'adressage spécifiques au processeur de signal numérique31
1.2.4.6. Modes spécifiques à l'assembleur36
1.2.4.7. Modes obsolètes36
1.2.5. Synthèse37
Chapitre 2. Jeu et classe d'instructions39
2.1. Définitions39
2.2. Instructions de transfert41
2.2.1. Transfert de données41
2.2.2. Instructions de manipulation de l'adresse43
2.3. Instructions de traitement de données43
2.3.1. Instructions arithmétiques pour entiers43
2.3.2. Instructions de manipulation de bits44
2.3.2.1. Définitions préalables46
2.3.2.2. Opérateurs booléens de base46
2.3.2.3. Manipulations non parallèles de base48
2.3.2.4. Instructions de manipulations évoluées de bits51
2.3.2.5. Instructions de manipulations avancées de bits54
2.4. Instructions de transfert de contrôle57
2.4.1. Branchements58
2.4.2. Exécution conditionnelle65
2.4.3. Contrôle d'itération68
2.4.4. Instructions d'appel et de retour d'un sous-programme71
2.5. Instructions environnementales72
2.5.1. Instructions de demande et de retour d'interruption72
2.5.2. Instructions d'arrêt72
2.5.3. Gestion du processeur73
2.5.4. Gestion de la mémoire73
2.5.4.1. Gestion des caches74
2.5.4.2. Gestion du TLB74
2.5.5. Détection du matériel74
2.5.6. Débogage75
2.5.7. Mise à jour75
2.5.8. Vérification75
2.5.9. Divers75
2.6. Instructions du parallélisme75
2.6.1. Instructions atomiques75
2.6.2. Instructions de synchronisation77
2.7. Extensions du jeu d'instructions77
2.7.1. Extension multimédia77
2.7.2. Extension pour le traitement du signal81
2.7.3. Cryptographie81
2.7.4. Gestion du hasard82
2.7.5. Implications82
2.8. Instructions diverses82
2.8.1. Instructions de manipulation de (chaînes de) caractères82
2.8.2. Instructions d'entrée-sortie83
2.8.3. Instructions de haut niveau83
2.8.4. Instructions arithmétiques spécifiques à une représentation de nombres particulière83
2.8.4.1. Représentation en DCB84
2.8.4.2. Représentation pour nombres réels84
2.8.5. Une curieuse instruction85
Chapitre 3. Notions complémentaires87
3.1. Notions associées au jeu d'instructions et à la programmation87
3.1.1. Instructions illégale, non implémentée, invalide, réservée et de confiance87
3.1.2. Alignement ou cadrage des instructions88
3.1.3. Orthogonalité et symétrie90
3.1.4. Codes pur, réentrant, relogeable et pour mémoire morte91
3.1.5. Niveaux de langages de programmation92
3.2. Notions associées à l'exécution93
3.2.1. Conséquences sur le temps d'exécution et l'occupation mémoire93
3.2.2. Modes d'exécution95
3.2.3. Portabilité99
3.2.4. Virtualisation99
3.3. Compatibilités matérielle et logicielle102
3.3.1. Compatibilité matérielle102
3.3.2. Compatibilité logicielle103
3.3.3. Compatibilités ascendante et descendante103
3.4. Mesure des performances du processeur106
3.4.1. Fréquence de cadencement106
3.4.2. Nombre d'instructions par cycle107
3.4.3. Temps d'exécution110
3.4.4. Programmes de test des performances111
3.4.5. Évolution des performances dans le temps115
3.5. Critères de choix117
Chapitre 4. Sous-programme119
4.1. Mémoire à pile119
4.2. Principes de base et mécanismes sous-jacents127
4.2.1. Appels imbriqués129
4.2.2. Contexte d'exécution131
4.2.3. Passage des paramètres et convention d'appel131
Chapitre 5. Mécanisme d'interruption135
5.1. Origine, définition et classement135
5.2. Causes externes137
5.2.1. Contexte d'exécution141
5.2.2. Sources142
5.2.3. Masquage144
5.2.4. Prise en compte et priorité147
5.2.5. Contrôleur d'interruptions150
5.3. Interruptions emboîtées151
5.4. Causes internes152
5.5. Débogage156
5.6. Priorité entre interruptions internes et externes157
5.7. Identification de la source et vectorisation164
5.8. Interruptions emboîtées et mises en file d'attente170
5.9. Utilisations171
5.10. Interruptions et modes d'exécution173
5.11. Interruptions et architectures avancées173
Conclusion183
Annexe 1. Exercices185
Annexe 2. Tables d'encodage et de décodage d'instructions....191
Liste des acronymes197
Bibliographie213
Index229
Sommaire de Le microprocesseur 1251
Sommaire de Le microprocesseur 2253
Sommaire de Le microprocesseur 3255
Sommaire de Le microprocesseur 5257