Correction Rattrapage 2013

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 10

Université de la Manouba

École Nationale des Sciences de l’Informatique

Session de Rattrapage
Matière : Méthodologie de conception de processeur Durée : 2 H

Enseignants : Ben Abdessalem Imed, Latrach Lassaad, Mezghanni Dhafer, Date : 10 - 06 – 2013
Sghaier Nizar
Nbr pages : 10
Documents : Non autorisés

Nom et prénom :…………………………………………… Classe :………………..

CIN : ……………………………….………………………. CE : …………………..

Note :

Exercice 1 : 3pts

Supposez un processeur MIPS big-endian qui exécute le programme suivant:


xor $t0,$t0,$t0
addi $t1,$t0,0x50
a: lw $t2,0($t1)
beq $t2,$zero,c
slt $t3,$t0,$t2
beq $t3,$zero,b
lw $t0,0($t1)
b: addi $t1,$t1,4
ja
c: sw $t0,0($t1)

1- Expliquez quelle est la fonction du programme ? 1


Le programme trouve le plus grand nombre d’un tableau qui commence à

1
Ne rien écrire ici

l’adresse 0x50 et se termine par une valeur 0. A la fin du programme, la plus


grande valeur trouvée est mise à la place du 0 qui indiquaient la fin du tableau
2- Si l’état initial de la mémoire est celui de la figure 1, quel est l’état de la même 2
portion de mémoire après l’exécution du programme ?

Exercice 2 : 5pts

On veut implémenter les deux instructions suivantes sur le chemin de données et la

2
machine à états d’un processeur MIPS multi-cycle.

1- Compléter le chemin de données pour implémenter les deux instructions: 1

2- Pour chacune des deux instructions spécifier les valeurs des signaux de contrôle 2
inst Me write Me read regDst Me/ Re Regwrite AlusrcA Alusrc B op

lui 0 1 1 1 1 1 0 add
lwptr 0 1 0 1 1 1 2 add

6
3- Compléter la machine à états pour implémenter les deux instructions: 2

7
Exercice 3 : 4pts

Un tel programme composé de 200 instructions a la répartition d’instruction suivante : 20% de


chargements, 10% de rangements, 50% d’opérations au format R, 15% de branchements et 5%
de sauts. On désire comparer es temps d’exécutions du programme sur les trois différentes
architectures monocycle, multi-cycle et pipeline à 5 étages. On suppose que la période en
monocycle est de 12 ns en monocycle, multi-cycle et pipeline 2.35ns. De plus dans le cas de
pipeline, nous supposons que l’aléa de contrôle est résolu par prédiction avec un taux d’échec
de 15℅ et que les aléas des données sur lw sont résolus par suspension de 1 cycle avec 70℅ des
instructions lw qui présentent ce type d’aléas et qu’il n’ya pas d’autres types d’aléas. Donner les
temps d’exécutions du programme sur ces trois architectures.

Type Temps d’exécution


Monocycle Tex=200*1CPI*12=2400ns

Multi-cycle Tex=2.35*200(0.2*5+0.1*4+0.5*4+0.15*3+0.0
5*3)=1880ns

Pipeline Tex=2.35*(200+4+0.15*30+0.7*40+10*2)
=526.5ns

8
Ne rien écrire ici

Problème : 8 pts
Soit le code suivant, pour le microprocesseur MIPS 64 présenté en classe (registres de 64
bits).

N.B : Les instructions sont le même microprocesseur MIPS 32 sauf on ajoute la lettre D avant
les instructions.
1- Si on exécute ce code avec comme valeur initiale R4=1, donnez les valeurs en 1.5
mémoire (valeurs décimales de blocs de 8 octets) de Mem[64] à Mem[128],
inclusivement. Donnez aussi les valeurs finales des registres R0 à R3 au moment
où l’instruction à la ligne 15 est atteinte.

9
2- Supposons que le code soit exécuté sur une implantation en pipeline en cinq 2
étages de base du MIPS, sans optimisation, ni envoi de données (sauf entre les
étages WB et ID, tel qu’indique ci-bas) ou prédiction de branchements. Calculez
le nombre de cycles d’horloge nécessaires pour que l’instruction à la ligne 15 du
code (étiquette fin) atteigne l’étage IF, si on utilise comme valeur initiale R4=0.

Dans cette implantation, considérez que toutes écritures aux registres se font à
l’étage WB. Ainsi, si une instruction dépend du résultat d’une instruction
antérieure, la deuxième instruction sera bloquée à l’étage ID pour la lecture du
registre tant que la première instruction n’aura pas atteint l’étage WB. De plus,
les décisions sur les branchements sont prises ´ a l’étage MEM. Supposez
également qu’un envoi de valeurs de registres entre les étages WB et ID est
effectué et que les transmissions de décisions de branchements entre les étages
MEM et IF sont instantanées.

En conséquence, 12 cycles d’horloge sont nécessaires avant que l’instruction de la ligne


15 atteigne l’´etage IF.

10
3- Pourrait-on réduire le nombre de cycles d’horloge nécessaires à l’exécution du 1.5
programme selon les conditions présentée en (1), en changeant seulement
l’ordre d’exécution de ces instructions, et ce, sans changer la rectitude du
programme ? Si oui, indiquez précisément pourrait-on procéder à cette fin et le
nombre de cycles qui seraient sauvés.

On ne peut pas améliorer les performances en


inversant uniquement des instructions. Êtes-vous
capable de réduire le délai davantage en modifiant le
code, sans en changer la rectitude ?

10
4- Soit la figure suivante, qui présente la micro-architecture du MIPS (32 bits) implantée en
pipeliné.

4-a Quelle est la valeur du registre EX/MEM.ALUOutput au début du cycle t + 4? Et 1

11
Ne rien écrire ici

au début du cycle t + 5?

EX/MEM.ALUOutput(t+4) = 118.
EX/MEM.ALUOutput(t+5) = Valeur indéterminée car
ce registre n’est pas utilisé.
4-b Quelle est la valeur du registre ID/EX.Imm au début du cycle t + 2? 1

ID/EX.Imm(t+2) = 24.
4-c Quelle est la valeur du registre EX/MEM.Cond au début du cycle t + 7? 1

EX/MEM.Cond(t+7) = 1 car R1 n’est pas égal à zéro.

12

Vous aimerez peut-être aussi