On suppose que Mem(0)=1, et on peut utiliser les adresses 1 à 9 pour stocker des valeurs
temporaires. Dans les questions suivantes, on suppose que 10 ≤ A, B, C ≤ 20.
1/6
5- Ecrire le programme permettant d’effectuer Mem(A) ← Mem(B) x Mem(C) en
supposant que 0≤Mem(B).
On additionne Mem(B) fois Mem(C) à Mem(A).
SBN A,A,1 ; Mem(A)=0
SBN 1,1,1 ; Mem(1)=0
SBN 1,C,1 ; Mem(1)=-Mem(C)
SBN 3,3,1 ; Mem(3)=0
BCL SBN 2,2,1 ; Mem(2)=0
SBN 2,B,ADD; Mem(2)=-Mem(B), -Mem(B)<0 ? ( Mem(B)>0 ?)
SBN 3,0,FIN; Aller à FIN (branchement inconditionnel)
ADD SBN A,1,1 ; Mem(A)=Mem(A)-Mem(1)=Mem(A)+Mem(C)
SBN B,0,1 ; Mem(B)=Mem(B)-1
SBN 3,0,BCL; Aller à BCL (branchement inconditionnel)
FIN
2- Supposons que l’état initial de la mémoire est celui de la figure suivante, quel est
l’état de la même portion de mémoire après l’exécution du programme ?
L’état est le même (les cases de 0x58 à 0x5B ne contiennent pas un 0x0000)
2/6
Contenue Adresse
Exercice 3 (4 points=2+2)
Trouver les aléas dans cette suite pour la machine pipelinée à 5 étages du cours. Donner les solutions
possibles pour ces aléas.
2- Calculer le temps d’exécution sur une machine MIPS en pipeline à 5 étages d’un programme
composé de 20 instructions de chargements, 10 instructions de rangements, 50 instructions de
type-R et 10 instructions de branchements.
3/6
L’instruction (imaginaire) jump memory (jmem) est similaire à l’instruction Jal à l’exception
que l’adresse de branchement ainsi que l’adresse de retour sont sauvegardées dans la
mémoire. Nous supposons qu’il s’agit d’une instruction de type I et que les adresses R[rt] et
(R[rs] + offset) sont distinctes.
4/6
Exercice 5 (4 points=1+1+1+1)
Supposons que nous disposons d’un processeur qui implémente le MIPS ISA à 5 étages
pipeline. Le pipeline implémente une unité de renvoi afin de réduire les pertes de temps dues
aux aléas de données. Répondez aux questions suivantes concernant la séquence
d’instructions suivantes :
I1 : add r3, r5, r6
I2 : sub r3, r2, r3
I3 : and r1, r3, r4
…
1- Au niveau de quel étage doit-on placer l’unité de renvoi
Étage « DI »
2- L’unité de renvoi fournit, à l’aide d’un multiplexeur, le signal approprié afin de sélectionner
les données correctes de calcul. Décrire la logique de cette unité de renvoi.
Rappel :
3- Ajoutez au niveau du pipeline la conception de cette unité, tout en détaillant les informations
nécessaires à cette fonctionnalité.
5/6
4- Dans la séquence des instructions, l’instruction I3 recevra la donnée r3 à partir de quelle
instruction et à partir de quel étage du pipeline.
I3 recevra r3 à partir de I2, à partir de l’étage EXEC
Bon travail
6/6