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