1/6 Université de la Manouba Année Universitaire 2009-2010 Ecole Nationale des

1/6 Université de la Manouba Année Universitaire 2009-2010 Ecole Nationale des Sciences de l’Informatique Examen (session principale) Matière : Architecture des Ordinateurs Durée : 2H Date : 07 - 01 - 2010 Classe : II2 Documents non autorisés Exercice 1 (4 points= 1+0.75+0.75+0.75+0.75) On considère un jeu d’instructions ne contenant qu'une seule instruction: SBN A,B,S : où SBN signifie (Soustrait et Saute si Négatif). L'instruction effectue l'opération suivante: Mem(A) = Mem(A) - Mem(B), et si (Mem(A) < 0) PC = PC + S ; sinon PC = PC + 1 (saut à l'instruction suivante) ; où Mem(A) correspond au contenu de la mémoire à l’adresse A, et PC au compteur de programme; le test est effectué après la soustraction; on suppose que la largeur de la mémoire est telle qu’une adresse mémoire correspond à une donnée ou une instruction; on ne se préoccupe pas non plus de la taille du mot que l’on suppose suffisamment grand pour les calculs; enfin, on considère qu’un programme se termine quand sa dernière instruction est exécutée. 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- Ecrire le programme permettant d'effectuer Mem(A) ← 0. SBN A,A,1 ; Mem(A)=Mem(A)-Mem(A)=0 2- Ecrire le programme permettant d’effectuer Mem(A) ← Mem(B). SBN A,A,1 ; Mem(A)=0 SBN 1,1,1 ; Mem(1)=0 SBN 1,B,1 ; Mem(1)=-Mem(B) SBN A,1,1 ; Mem(A)=-Mem(1)=Mem(B) 3- Ecrire le programme permettant d’effectuer Mem(A) ← 3. SBN A,A,1 ; Mem(A)=0 SBN 1,1,1 ; Mem(1)=0 SBN 1,0,1 ; Mem(1)=-Mem(0)=-1 SBN 1,0,1 ; Mem(1)=Mem(1)-Mem(0)=-2 SBN 1,0,1 ; Mem(1)=Mem(1)-Mem(0)=-3 SBN A,1,1 ; Mem(A)=-Mem(1)=3 4- Ecrire le programme permettant d’effectuer Mem(A) ← Mem(B) + Mem(C). SBN A,A,1 ; Mem(A)=0 SBN 1,1,1 ; Mem(1)=0 SBN 1,B,1 ; Mem(1)=-Mem(B) SBN 2,2,1 ; Mem(2)=0 SBN 2,C,1 ; Mem(2)=-Mem(C) SBN A,1,1 ; Mem(A)=-Mem(1)=Mem(B) SBN A,2,1 ; Mem(A)=Mem(B)-Mem(2)=Mem(B)+Mem(C) 2/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 Exercice 2 (4 points= 3 +1) Supposons 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 j a c: sw $t0, 0($t1) 1- Donner une explication de la fonction du programme Le programme trouve le plus grand nombre d’un tableau qui commence à 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 indiquait la fin du tableau 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) 3/6 Adresse Contenue Exercice 3 (4 points=2+2) 1- Considérons la suite des instructions suivante : Deb : sub $1, $1, $3 add $3, $1, $5 or $2, $7, $8 bne $1, $4, Fin and $5, $2, $3 addi $1, $8, 15 j Deb Fin : ori $1, $2, $3 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. Un temps de cycle (période) d’horloge est égal à 2,2ns. On considère pour la machine pipelinée les conditions suivantes : • Les Aléas de structure sont résolus, • Les Aléas de contrôle sont résolus par prédiction dynamique (avec 85% des prédictions sont correctes). • Le programme ne contient pas d’autres types d’aléas. Taux de succès =0.85 On a 10 branchements, et si notre prédiction est fausse, on perd 2 cycles, donc le nombre de cycles perdus : np=10*0.15*2=3 cycles Texec= [(Nbre d’étages -1 +Nbre d’instruction) + np] * T = [5-1+90+3]*2.2ns = 213.4ns Exercice 4 (4 points=3+1 (ou 2.5+1.5) ) 4/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. jmem (rt), offset(rs) # Memory[R[rs]+offset] = PC+4; # PC = Memory[R[rt]] 1- Proposer les modifications nécessaires au niveau chemin de données du multicycle du processeur MIPS. 2- Compléter la machine à état qui permettra d’avoir les signaux de contrôle de l’instruction jmem. 5/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 : ((Di/EX.reg_wr = 1) and (Di/EX.reg_ecriture = EI/DI.reg_lecture1) Ou (Di/EX.reg_ecriture = EI/DI.reg_lecture2)) Ou ((EX/MEM.reg_wr = 1) and (EX/MEM.reg_ecriture = EI/DI.reg_lecture1) Ou (EX/MEM.reg_ecriture = EI/DI.reg_lecture2)) 3- Ajoutez au niveau du pipeline la conception de cette unité, tout en détaillant les informations nécessaires à cette fonctionnalité. 6/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 uploads/Litterature/ exam-arch-2010.pdf

  • 26
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager