Correction DS Architecture Ordinateurs

Transcription

Correction DS Architecture Ordinateurs
Université de Sousse
ISSAT de Sousse
20 Novembre 2015
DS: Architecture des ordinateurs
1ère année Cycle ingénieur
(Documents non autorisés)
Exercice1 : Représentation des nombres réels
1/ Donnez la représentation flottante IEEE 754 en simple précision des nombres rationnels
suivants : 10.5 et 0.1
2/ Soit la chaine de bits suivante codée en représentation flottante IEEE 754:
1100 0001 1011 0001 0000 0000 0000 0000
a/ Quel nombre décimal est représenté par cette chaîne de bits ?
b/ Est ce que c’est une représentation en simple ou double précision ?
Exercice2
Soit un processeur pentium IV ayant une fréquence de 3,2 GHz . La micro architecture de ce
processeur est donnée à la figure 1.
Figure 1
1/ Dire si ce processeur est-un processeur super scalaire ou pas, justifiez votre réponse.
2/ D’après la figure 1 quel serait la fréquence du FSB ? Donnez des explications.
3/ Expliquer le rôle du FP ? Que représentent les acronymes MMX, SSE ?
4/ Quelles sont les raisons qui ont poussé INTEL à abandonner le Pentium4 ? Citer deux
raisons.
Exercice 3: Pipeline
Soit les instructions suivantes
R1 = 10 + R2
R3 = R1 x 20
R4 = 2 x R5
R6 = 10 + R5
On se situe dans le cas du processeur pipeliné à cinq étages étudié en cours.
1/ Est ce qu’on peut rencontrer des aléas lors de l’exécution de ces instructions. Quel type
d’aléas ?
2/ Proposez deux sortes d’ordonnancements différents pour remédier à ce problème.
Exercice 4 : Programmation assembleur Masm32
Écrivez une fonction comparetab qui compare deux tableaux tab1 et tab2 de n mots de 32
bits.
La valeur retournée dans al contient 0 si tab1 est diffèrent de tab2, 1 si les deux tableaux sont
identiques.
Écrivez le programme qui fait appel à cette fonction tout en affichant le résultat de la
comparaison.
Remarque : tab1 et tab2 étant initialisés dès le départ.
Université de Sousse
ISSAT de Sousse
20 Novembre 2015
DS: Architecture des ordinateurs
1ère année Cycle ingénieur
(Documents non autorisés)
Correction
Exercice 1
10,5= 1010,1 = 1,0101 x 23
S = 0 (le nombre est positif)
M = 0101, soit 010 1000 0000 0000 0000 0000 sur 23 bits.
E = 3+127 = 130 = 1000 0010 sur 8 bits
Soit 0100 0001 0010 1000 0000 0000 0000 0000
0,1 x 2 = 0; 2
0,2 x 2 = 0; 4
0,4 x 2 = 0; 8
0,8 x 2 = 1; 6
0,6 x 2 = 1; 2
0,2 x 2 = 0; 4
0,4 x 2 = 0; 8
On boucle, il n'y a donc pas de représentation exacte du nombre 0.1. On doit donc tronquer
en fonction de la taille de la mantisse (i.e., 23 bits)
0,1 = 000 1100 1100 1100 1100 1100 = 1,100 1100 1100 1100 1100 1100 x 24
S = 0 (le nombre est positif)
M = 100 1100 1100 1100 1100 1100
E = -4+127 = 123 = 0111 1011 sur 8 bits
Soit 0011 1101 1100 1100 1100 1100 1100 1100
2/
E=100 0001 1
M=0,011 0001 0000 0000 0000 0000
(-1)1 x (1, 011 0001 0000 0000 0000 0000) x 2E-127
= -1 x 1; (0:25 + 0:125 + 0:0078125) x 2131-127
=-22; 125
Exercice2
1/ ce processeur est un processeur super scalaire puisque il possède plusieurs unité de
traitement
2/Ce processeur possède un quad pumped bus cad frequence =4* FSB
=>FSB=800Mhz
3/ FP c’est une unité de traitement des flottants elle supporte les instructions MMxet SSE
MMx :MultiMedia eXtension c’est un jeu d'instructions pour les microprocesseurs de type
x86 il est apparu sur les processeurs Intel Pentium MMX
SSE : Streaming SIMD Extensions c’est un jeu de 70 instructions supplémentaires pour
microprocesseurs x86, apparu en 1999 sur le Pentium III.
4/ les raisons qui ont poussé INTEL à abandonner le Pentium4 :
Un échauffement excessif dès que l'on monte en fréquence…
Une architecture très compliqué beaucoup de logique de contrôle…
Exercice3
1 / On peut rencontrer des Aléas de données: le résultat d’une opération dépend de celui, pas
encore produit, d’une instruction précédente (R1 n’est pas encore prete pour l’instruction
suivante
2/ ordonnancement dynamique : Une méthode plus performante pour réduire le délai introduit
par les aléas des données consiste à executer les instructions dés que leur operande sont
disponible.
Ordonnancement statique se fait au niveau du compilateur :
-la première solution, triviale, est d'insérer des NOP (No Operation),
-Changer l'ordre des instructions…..
Exercice4
Comparetab proc dest:DWORD, src:DWORD, n:BYTE
Mov esi, src
Mov edi, dest
Movzx ecx, byte ptr n
Mov eax,[esi]
Boucle:
Cmp eax, [edi]
Je etiq
Mov eax,0
Jmp fin
Etiq:
Add esi,4
Add edi,4
Loop boucle
Mov eax,1
Fin:
ret
Comparetab endp
Programme principal
.586
.model flat, stdcall
option casemap:none
;-----------------------------------------------include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32lib.lib
;-----------------------------------------------Comparetab proto :DWORD, :DWORD, :BYTE
.data
Tab1 dd 1E45h, 45, 98,76
Tab2 dd 1E45h, 43, 88, 52
. data ?
monMsg db 5dup ( ?)
;-----------------------------------------------.code
start:
invoke Comparetab , addr tab1, addr tab2, 4
invoke dwtoa ,eax, ADDR monMsg
invokeStdOut, ADDR monMsg
invoke ExitProcess, 0
end start