Vous êtes sur la page 1sur 2

Micro interrogation L2 (Architecture des ordinateurs) Durée 1h00 Le 23/02/2021

Corrigé Type de la micro interrogation


Exercice 1 (BONUS : 1 point)
Calcul de la capacité mémoire :
Capacité mémoire = 232x32 = 232x25 = 27x230 bits =27x230/23 = 24x230 = 16Go
Exercice 2 (3 points) : 0.5 pour chaque bonne réponse.
Étant donné la séquence d’instructions MIPS suivantes :
lw $s0, 30($s1)
add $t0, $s0, $s1
sw $t0, 40($s1)
 Donner le format de chacune des instructions ? Formats respectives : I, R, I

 Donner la présentation en langage machine de ces instructions sachant que les


numéros respectifs des registres $t0, $t1, $s0, $s1 sont 8, 9, 16 et 17 ainsi que
l’opcode (lw) = 35 ; opcode (add) = 0 et funct (add) = 35 ; opcode (sw) = 43 ?
35 17 16 30 lw $s0, 30($s1)

0 16 17 8 0 35 add $t0, $s0, $s1

43 17 8 40 sw $t0, 40($s1)

Exercice 3 (7 points) : 1 pour chaque bonne réponse.


Un compilateur C a transformé un code en une séquence d’instructions en langage
assembleur MIPS ci-contre (Programme P1) :

1. Extraire de ce programme l’instruction qui Programme P1 :


réalise une lecture de la mémoire ? .data
Supposons que le tableau se trouve à tab: .word 10 20 30 40 50 60 70
l’adresse « 0x10010000 ». .text
L’instruction qui réalise une lecture de la addi $s1, $0, 0
mémoire est : la $s4, tab et lw $t0, 0($t1) addi $s3, $0, 3
la $s4, tab
2. Calculer le nombre d’instructions exécutées ?
Loop: add $t1, $s1, $s1
Nombre d’instructions exécutées = 7N + 3
add $t1, $t1, $t1
Comme N = 3 (3 tours de boucle) alors :
add $t1, $t1,$s4
Nombre d’inst. : IC = 24 inst. lw $t0, 0($t1)
3. Quelle est la valeur du contenu du registre $s4 bgt $s1, $s3, Exit
après exécution du programme ? addi $s1, $s1, 2
$s4 = 0x10010000. j Loop
4. Au deuxième tour de l’exécution de la boucle, Exit: li $v0,10
quelle est la valeur du registre $t1 ? Syscall
$t1 = 0x10010008.
5. Donner la valeur du registre $t0 à la fin de l’exécution du programme.
$t0 = 50.

1
Micro interrogation L2 (Architecture des ordinateurs) Durée 1h00 Le 23/02/2021

Corrigé Type de la micro interrogation


6. Afin d’optimiser le programme P1, nous pouvons remplacer les deux premières
instructions par une seule « sll $t1, $s1, 2 ». Le même code en C précédemment
compilé a été de nouveau compilé avec un compilateur plus performant produisant le
Programme P2 ci-dessous :

 Calculer le nouveau nombre d’instructions exécutées ?


Nombre d’instructions exécutées = 5N + 5 ; Comme N = 3 (3 tours de boucle)
alors :
Nombre d’inst. : IC = 20 inst.

 Supposons que le programme P2 est exécuté sur une machine de fréquence


d’horloge égale à 2 Ghz et que le CPI de toutes les instructions est identique,
CPI =1, Calculer le temps d’exécution de ce programme.

Tex = (ICxCPI)/f
Tex = 20x1/2.109 = 10.10-9 sec = 10 nanosec.

Programme P2 :
.data
tab: .word 10 20 30 40 50 60 70
.text
addi $s1, $0, 0
addi $s3, $0, 3
la $s4, tab
j Begin
Loop: addi $s1, $s1, 2
Begin: sll $t1, $s1, 2
add $t1, $t1, $s4
lw $t0, 0($t1)
blt $s1, $s3, Loop
li $v0,10
syscall

Vous aimerez peut-être aussi