Examen #1

INF4170 -- Architecture des ordinateurs
Examen #1 (6 juin 1996)


Durée: 17:30 - 19:00 Documentation autorisée: Toute documentation personnelle.


Nom:

Code permanent:


tex2html_wrap522 tex2html_wrap524


1. Instructions MIPS (10 pts)

Soit l'instruction C suivante, où y ainsi que les éléments de A sont des entiers (4 octets):

      A[11] = A[10] + 8*y;

Supposons que le registre $t0 contienne déjà la valeur de y et que l'adresse de base du tableau A soit conservée dans le registre $t1 ($t1=&A[0]). Donnez une suite d'instructions machines MIPS permettant de réaliser l'instruction C indiquée.

Indice: tex2html_wrap_inline468 . De plus, vous pouvez utiliser et modifier les registres $t0, $t1, $t2, etc.

2. Encodage MIPS (10 pts)

Dans le code machine MIPS qui suit, complétez l'encodage des instructions (tel qu'effectué dans la vraie machine MIPS):

tabular185

3. Instructions style VAX en MIPS (10 pts)

Pour chacune des instructions (style VAX) présentée plus bas, donnez une séquence d'instructions machines MIPS ayant l'effet indiqué par le commentaire. Si vous avez besoin de registres temporaires, utilisez $1, $2, etc.

  1. tabular198

  2. tabular203

4. Performances et CPI (15 pts)

On désire comparer deux machines ayant les caractéristiques suivantes:

Soit tex2html_wrap_inline482 le nombre d'instructions exécutées par le programme P sur la machine tex2html_wrap_inline470 .

[5]a) En utilisant les informations précédentes, donnez la formule donnant le temps d'exécution du programme P sur la machine tex2html_wrap_inline470 :

tex2html_wrap_inline492

[5]b) Toujours en utilisant les informations précédents, donnez la formule donnant le temps d'exécution du programme P sur la machine tex2html_wrap_inline472 :

tex2html_wrap_inline498

[5]c) Quel est le CPI moyen de tex2html_wrap_inline470 pour le programme P si son exécution a permis de déterminer que la machine tex2html_wrap_inline472 était, pour ce programme, 2 fois plus rapide que tex2html_wrap_inline470 ?

5. Performances (15 pts)

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:

tabular226

On désire comparer le code produit par deux compilateurs. L'exécution 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'instructions:

tabular233

On a aussi déterminé 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 produits par le compilateur 1.

Note: ``x supérieur de 10% à y'' signifie ``x = 1.10 * y'', ce qui est différent de ``y = 0.90 * x''.

[5]a) Quel est le CPI moyen du code produit par chacun des compilateurs?

tex2html_wrap_inline510

tex2html_wrap_inline512

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

tex2html_wrap_inline514

tex2html_wrap_inline516

Mesure MIPS la plus élevée et de combien =

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

tex2html_wrap_inline518

tex2html_wrap_inline520

Plus performant et de combien =

6. Vrai ou Faux? (10 pts)

  1. Un avantage important de la représentation à complément 2 est que lorsque deux nombres quelconques sont additionnés, il est impossible qu'un débordement survienne. On peut donc effectuer l'addition bit à bit, en propageant les retenues, comme on le ferait pour une addition manuelle.

    tabular397

  2. La machine MIPS est un ordinateur RISC utilisant une architecture rangementchargement; ceci signifie que seules certaines instructions bien précises peuvent accéder à la mémoire de données.

    tabular397

  3. L'encodage des branchement dans la machine MIPS se fait avec le mode d'adressage relatif à CP (CP+4). Ceci signifie qu'un programme peut être conservé n'importe où en mémoire sans qu'il soit nécessaire, au moment de l'édition des liens, de modifier les adresses des branchements.

    tabular397

  4. Dans une machine CISC (e.g., VAX), une instruction peut être beaucoup plus complexe que dans une machine RISC (e.g., MIPS). On a donc besoin d'exécuter moins d'instructions, ce qui rend les programmes beaucoup plus performants.

    tabular397





Guy Tremblay
Tue Aug 27 15:31:21 EDT 1996