a) Calculez l'accélération globale obtenue pour ce programme lorsque le mode amélioré est activé.
Posons que le programme prend un temps Ta pour s'exécuter lorsque le mode est activé.b) Quelle est la proportion (en %) du temps d'exécution originale (sans amélioration) qui peut utiliser le mode amélioré?
Il passe Ta/2 dans le mode amélioré qui aurait pris un temps 10Ta/2 sans l'amélioration.
Le temps original est donc To = Ta/2 + 10Ta/2 = 11Ta/2.Le facteur d'accélération FA = To / Ta = 11Ta/2 / Ta = 11/2 = 5.5
10Ta/2 / ( 11Ta/2 ) = 10/112. Supposez qu'un processeur avec un cache parfait se comporte lors d'exécution des programmes tests comme indiqué dans la table suivant:
Ce qui donne environ 91%
Type d'instruction | Fréquence moyenne
d'occurrence |
Nb de cycles moyen
par instruction |
Arithmétique
Chargement Rangement Branchement |
43%
21% 12% 24% |
1
2 2 3 |
En moyenne, sont perdus:3. p.139 3.1 (voir la question dans le livre)
5% * 40 cycles = 2 cycles pour la recherche d'instructions (toutes les instructions).
10% * 40 cycles = 4 cycles pour l'accès aux données (chargement).
Le CPI moyen pour chaque type d'instruction devient donc:
Arithmétique
Chargement
Rangement
Branchement1+2=3
2+2+4=8
2+2=4
3+2=5Un programme a un CPI moyen de 43%*1 + 21%*2 + 12%*2 + 24%*3 = 1.81 sur le cache idéal.
Un programme a un CPI moyen de 43%*3 + 21%*8 + 12%*4 + 24%*5 = 4.65 sur le cache réel.
Facteur = 4.65/1.81 qui est environ 2.57
Le temps d'exécution moyen est 60%*1.2us + 10%*0.8us + 30%*1.0us = 1.1us.b) Combien de MIPS pour ce programme?
Le CPI moyen est donc 1.1us/0.2us = 5.5
1 / (106 * 1.1 10-6s) qui donne environ 0.9 MIPS4. Supposez que vous avez un programme test qui est typique à vos programmes d'applications. Un de vos anciens postes de travail ne possède pas une unité à virgule flottante et doit émuler chaque instruction VF par une séquence d'instructions à nombres entiers. Ce modèle de poste a un taux d'exécution de 100 MIPS sur votre programme test. Un vendeur vous offre un coprocesseur qui fournit un support à virgule flottante à ca poste de travail. Le système combiné poste de travail - coprocesseur a le taux de 80 MIPS sur le même programme test.
(Si les temps sont en micro secondes)b) Pour la configuration sans le coprocesseut à virgule flottante, on a mesuré que F = 8*106, Y = 50, W = 500. Déterminez I.
Pour la machine originale: 100 MIPS = (I + Y*F) / W
Pour la machine avec coprocesseur: 80 MIPS = (I + F) / B
I = 100MIPS*W - Y*F = 100MIPS*500us - 50*8*106 = 7600c) Quelle est la valeure de B sous les conditions énoncées en (b)?
B = (I + F)/80MIPS = (7600 + 8*106)/80MIPS = 105.6usd) Quel est le taux MFLOPS de la machine avec le coprocesseur?
Le processeur passe 7600/100MIPS = 76us à exécuter les instructions à nombres entiers.e) En considérant que la configuration avec le coprocesseur a le taux MIPS plus bas que le poste original, est-il utile d'acheter le coprocesseur?
Il passe donc 105.6us - 76us = 29.6us à exécuter les instructions VF.
Dans ce temps il exécute 8*106 = 848 instructions. Il fait donc 848 / 29.6us qui donne environ 29MFLOPS
Le taux MIPS a baisser car le nombre d'instruction a baisser, le processeur n'est pas plus lent. Si on regarde le temps d'exécution, on voit qu'en fait il est presque 5 fois plus vite sur notre programme test.