next up previous
Next: About this document

Examen #1
INF4170 groupe 10

Date: Mercredi, 15 janvier 1995.

Durée: 1 1/2 heures.

Toute documentation permise (sauf la copie du voisin!).


#1) Dans le code MIPS qui suit, complétez l'encodage des instructions bne, add, beq et sw.

    lw    $18, 4000($19)            35 19 18 4000  
    bne   $18, $21, Sortie  
    addi  $9, $9, -1                 8 9 9 -1  
Boucle:   
    add   $19, $19, $20              
    lw    $18, 4000($19)            35 19 18 4000  
    beq   $9, $11, Boucle              
    addi  $9, $9, 1                 8 9 9 1  
Sortie: 
    sw    $10, 0($2)

#2) Déterminez le mot ou la phrase de la liste ci-dessous qui correspond le mieux à la description donnée dans les questions qui suivent. Utilisez, pour répondre, les lettres à gauche des mots ou phrases. Chaque réponse n'est valable qu'une seule fois.

tabular115

  1. Abstraction spécifique que le matériel fournit au logiciel de bas niveau.
  2. Approche de la conception matérielle et logicielle: le système est constitué de couches hiérarchiques, où une couche inférieure dissimule des détails au niveau immédiatement supérieur.
  3. Ensemble de mises en oeuvre d'une même architecture de jeu d'instructions; ces mises en oeuvre varient en prix et en performance.
  4. Machines à hautes performances coûtant plusieurs millions de dollars et utilisées principalement pour les calculs scientifiques.
  5. Puce contenant tous les composants d'un processeur.

#3) Soit une machine M ayant une fréquence d'horloge de 10 MHz. Cette machine comporte trois (3) classes d'instructions ayant les CPIs suivants:

tabular121

On désire comparer le code produit par deux compilateurs. La trace d'un ensemble de programmes a permis de déterminer, pour chacun des compilateurs, la fréquence moyenne d'exécution de chacune des classes d'instruction:

tabular126

Toutefois, on a aussi pu déterminer que le nombre d'instructions exécutées par les programmes produits par le compilateur 2 était supérieur de 10% au nombre d'instructions exécutées par les programmes du compilateur 1.

Remarque 1: Indiquez, dans vos réponses, les principales étapes de votre raisonnement.

Remarque 2: ``x supérieur de 10% à y'' signifie ``x = 1.10 y'', ce qui est différent de ``y = 0.90 x'', car 1 tex2html_wrap_inline183 1.10 = 0.90909... tex2html_wrap_inline185 0.90!

a) Quel est le CPI du code produit par chacun des compilateurs?

b) Quel compilateur produit le code ayant la mesure MIPS la plus élevée et de combien?

c) Quel compilateur produit le code le plus performant (en terme de temps d'exécution) et de combien?

#4) Une compagnie désire acheter un nouvel ordinateur. Des études internes ont montré que la machine actuelle consacrait en moyenne, sur 100 heures de fonctionnement, les temps suivants aux divers programmes utilisés par la compagnie:

tabular134

Deux ordinateurs - MA et MB - sont proposés pour remplacer l'ancienne machine. Le temps d'exécution des divers programmes sur ces deux machines sont les suivants:

tabular139

Indiquez (et justifiez) laquelle parmi les équations suivantes décrit le mieux la condition indiquant que la machine MA devrait être sélectionnée, plutôt que la machine MB, en remplacement de l'ancienne machine.

Justifiez brièvement votre choix.

#5) Pour chacune des instructions de style VAX présentées plus bas, donnez une séquence d'instructions MIPS ayant le même effet (tel qu'indiqué par le commentaire). Si vous avez besoin de registres temporaires, utili sez les registres $1 et suivants.

a) movl 100($5), @200 # Mem[100+$5] = Mem[Mem[200]]

b) sobge $5, $6, L1 # $5 = $5 - 1; if ($5 >= $6) goto L1

c) subl3 $5, ($8)+, #10 # $5 = Mem[$8] - 10; $8 = $8 + 4;

#6) Pour chacune des caractéristiques présentées plus bas, dites si elle caractérise uniquement l'architecture MIPS, VAX, les deux ou aucune des deux architectures:

a) Une grande variété de modes d'adressage est disponible.

tabular155

b) Architecture de type rangement/chargement.

tabular155

c) Possède des instructions utilisant une valeur constante comme opérande, valeur directement conservée dans l'instruction.

tabular155

d) Les instructions sont relativement simples et peuvent s'exécuter assez rapidement.

tabular155

e) N'importe quelle instruction peut utiliser un opérande conservé en mémoire.

tabular155

f) Possède un mode d'adressage permettant d'indiquer une adresse effective en mémoire via un registre de base plus un déplacement.

tabular155

g) Possède un accumulateur (Accum), i.e., un registre implicite utilisé pour les opérations arithmétiques. Par exemple, on pourrait avoir une instruction ayant l'allure suivante:

add 180($r1) # Accum = Accum + Mem[180+$r1]

tabular155

h) L'extraction (lecture) des instructions peut se faire de façon efficace, puisque toutes les instructions ont la même taille.

tabular155




next up previous
Next: About this document

Guy Tremblay
Mon Jun 3 14:33:27 EDT 1996