À lire: pp. 274 à 279 3/5, 281 3/4 à 293 3/4, 297 2/3 à 308 4/5, 312 à 337 1/2 (sauf le détail des divers signaux de contrôle, e.g., fig. 5.37, 5.40), 338, 339 1/2 à 341 1/5, 356 à 362 3/4.
- Les performances d'une machine sont déterminées par 3 facteurs: le nombre d'instructions exécutées (N), le temps de cycle d'horloge (f) et le nombre de cycles par instruction (CPI). Le compilateur et l'architecture déterminent le premier facteur (N). Les 2 autres facteurs sont déterminés par la mise en oeuvre du processeur.
- Deux mises en oeuvres du noyau du jeu d'instructions MIPS -- type R (add, sub, and, or), lw, sw, beq et j -- vont être présentées:
- Chemin de données = Ensemble des composants requis pour l'exécution des diverses instructions (compteur de programme, mémoires, banc de registres, UAL, unités d'extension de signe ou de décalage) + Liens entre ces composants (flux de données, signaux de lecture et/ou écriture, multiplexeurs pour unités partagées, etc.).
- Les principaux composants requis dépendent de la tâche à effectuer:
- Principe de base = Le temps de cycle (période d'horloge) est suffisamment long pour que toutes les opérations et transferts requis par l'exécution de n'importe quelle instruction puissent s'effectuer durant le cycle d'horloge ( pour toute instruction: CPI = 1).
- Nécessite la duplication de certaines unités fonctionnelles, parce que toutes les opérations doivent être faites durant le même cycle. Ex.: le calcul de CP+4 et une opération arithmétique doivent être effectués durant le même cycle dans le cas d'une instruction R 1 additionneur pour le calcul de CP+4 et 1 UAL pour la réalisation de l'opération arithmétique sont requis.
- Certaines unités fonctionnelles peuvent toutefois être partagées (via multiplexeurs) lorsqu'utilisées par des instructions différentes. Ex.: la même UAL est utilisée pour l'opération arithmétique d' une instruction R et le calcul de l'adresse effective d'un rangement/chargement.
- Unité de contrôle de l'UAL: L'opération devant être effectuée par l'UAL dépend soit du code opération seulement (lw, sw, beq), soit du code opération et du champ fonction (instruction R, i.e., code op = 0). L'unité de contrôle de l'UAL reçoit donc ces deux champs, les décode et envoie ensuite le signal approprié à l'UAL:
- Unité centrale de contrôle: Décode le code opération de l'instruction et envoie les signaux de contrôle appropriés aux diverses unités fonctionnelles. Les divers signaux dépendent uniquement du code opération. (Cf. Fig. 5.21 pour une description des divers signaux de contrôle. Cf. Fig. 5.23 pour une spécification de la valeur des divers signaux selon le code opération de l'instruction.)
- Désavantage de la mise en oeuvre à un seul cycle: Pour certaines instructions, du temps est gaspillé (attente) parce que le cycle est inutilement long. Plus précisément, certaines instructions (e.g., beq, R, sw, j) peuvent s'exécuter en un temps plus court que la longueur du cycle. La durée du cycle est donc déterminée par le temps nécessaire à l'exécution de l'instruction la plus longue ( lw).
- Principe de base = L'exécution d'une instruction est décomposée en une série d'étapes correspondant aux principales opérations des unités fonctionnelles nécessaires à l'exécution de l'instruction. Chaque étape prend un (1) cycle d'horloge et exécute un certain nombre d'actions. Selon sa complexité, une instruction requiert 3, 4 ou 5 cycles pour s'exécuter.
- Principales étapes (cf. Fig. 5.38 pour les actions associées):
- Unité centrale de contrôle:
- Avantages de l'approche à plusieurs cycles:
- Microprogrammation = Technique pour la réalisation du contrôle dans le cas de la mise en oeuvre à plusieurs cycles: l'unité de contrôle est conçue comme un programme. La fonction de ce micro-programme est d'interpréter les instructions du programme objet: une instruction objet (e.g., MIPS) s'exécute via l'interprétation d'une séquence de micro-instructions. Chaque micro-instruction peut être vue comme l'encodage (direct ou complexe) des signaux devant être activés pour réaliser les tâches associées à une étape de l'exécution d'une instruction.
Note: La section 5.6 sur le traitement des exceptions n'est pas au programme.