Il est parfois possible d'éliminer les blocages structurels en modifiant l'ordre d'exécution des instructions. Ces modifications doivent être effectuées avec précaution, en veillant à la bonne exécution du programme. Dans l'exemple de programme, une modification possible consiste à déplacer l'instruction add.d f4,f3,f3et à la placer après l' div.d f5,f3,f2instruction précédente.
Modifiez le programme comme suggéré et exécutez-le.
Combien de cycles d'horloge ont été nécessaires pour exécuter le programme modifié ?
Avant d'exécuter le programme dans le simulateur WinMIPS64, désactivez le mécanisme de transfert de données (dans les paramètres, onglet simulation, désactivez l'option « Transfert CPU »).
Exécutez le programme d'exemple avec WinMIPS. Une fois l'exécution terminée, répondez à la question : quel est le nombre de cycles d'horloge nécessaires pour exécuter ce programme ?
Quelle est la valeur CPI pour l'exécution en pipeline du programme ?
(Ceci peut être calculé manuellement ou obtenu à partir de la fenêtre de statistiques du simulateur WinMIPS64).
Calculer ou noter la valeur de l'IPC à partir de la fenêtre statistique.
L'un des indicateurs utilisés pour évaluer l'efficacité de l' exécution d'un programme est le CPI (cycles d'horloge par instruction). Il indique le nombre moyen de cycles d'horloge nécessaires pour exécuter une instruction. Pour un processeur séquentiel doté d'une unité d'exécution à 5 étages, chaque étage nécessitant un cycle d'horloge, la valeur du CPI est de 5. Plus la valeur du CPI est basse, meilleure est l'efficacité.
La valeur CPI peut être facilement calculée en prenant en compte le nombre d'instructions que contient le programme et le nombre de cycles d'horloge nécessaires à son exécution.
Combien d'instructions contient le programme de la question précédente ?
Quelle est la valeur CPI pour l'exécution séquentielle d'un programme ?
Expliquez brièvement pourquoi le réordonnancement des instructions réduit le nombre de cycles d'horloge nécessaires à l'exécution d'un programme.