Examen d`octobre 1998
Transcription
Examen d`octobre 1998
IFT-17583 Structure interne des ordinateurs I Corrigé de l'examen du 14 novembre 1998. 1. Convertissez : a. 280.4459 en base 10 (précision 3 chiffres après le point décimal). b. 219.142910 en base 7 (précision 2 chiffres après le point). (10 pts) (10 pts) a. Partie entière 2809 = 2 × 92 + 8 × 91 + 0 × 90 = 23410. Partie fractionnaire : 0.4459 = 4 × 9-1 + 4 × 9-2 + 5 × 9-3 = 0.500 b. Partie entière 21910 219 / 7 = 31, reste 2 31 / 7 = 4 reste 3 4 / 7 = 0, reste 4 Résultat : 4327 Partie fractionnaire : 0. 1429 × 7 1 .0003 × 7 0 .002 × 7 0. .014 × 7 0. 1 Résultat : 0.1000 Résultat : 432.10007 2. Soit le contenu hexadécimal de deux cellules de 32 bits : BFC00000 et C0900000 a. Si ces deux cellules représentent des nombres de virgule flottante sous forme IEEE 754 et qu'oon les envoie à un co-processeur de virgule flottante pour en faire l'addition, quel sera le résultat décimal en signe et en valeur absolue ? b. Si, par erreur, le contenu de ces deux cellules était envoyé à l'UAL comme des nombres entiers signés (complément à 2), quel serait le résultat en signe et en valeur absolue ? a. En virgule flottante IEEE, BFC00000 vaut : 1 01111111 100 0000 0000 0000 0000 0000 Le bit de signe est 1, donc le nombre est négatif. L'exposant biaisé est 01111111 = 127, donc l'exposant vaut 0. La mantisse normalisée est 1.10000000000000000000000 . (15 pts) (15 pts) Le premier nombre vaut donc -1,12 × 20 = -1,510. Pour le second nombre C0900000, on a : 1 10000001 001 0000 0000 0000 0000 0000 Le bit de signe est 1, donc le nombre est négatif. L'exposant biaisé est 10000001 = 129, donc l'exposant vaut 2. La mantisse normalisée est 1.00100000000000000000000 Le second nombre vaut donc -1,0012 × 22 = −4,510 La somme des deux peut s'effectuer en binaire ou en décimal. En binaire, on a - 1,001 × 22 - 0,011 × 22 _______________ - 1.10 × 22 = −6,010 b. La somme des deux nombres BFC00000 + C0900000, considérés comme des nomres entiers signées en complément à 2, est (1) 80500000. Si on ne prend que les 32 derniers bits du résultat, sa valeur décimale est -2,152,726,528. Sauf que ce résultat est incorrect car on a laissé tomber la retenue. En effet, les deux nombres valent : -1,077,936,128 et le second -1,064,304,640. Leur somme devrait donner : -2,142,240,768. Ceci est dû au fait que la représentation sur 32 bits en complément à 2 s'étend de -2,147,483,648 à +2,147,483,647. 3. Le code excédent-3 est un code binaire parfois utilisé au lieu du BCD parce qu’il simplifie certaines opérations arithmétiques. Sur quatre bits, on a: BCD Excédent-3 B3B2B1B0 E3E2E1E0 0000 0011 0001 0100 0010 0101 0011 0110 0100 0111 BCD Excédent-3 B3B2B1B0 E3E2E1E0 0101 1000 0110 1001 0111 1010 1000 1011 1001 1100 Concevez un traducteur combinatoire pour convertir un nombre BCD de quatre bits (B0 à B3) au code excédent-3 correspondant (E0 à E3): (30 pts) B1 B0 B3 B2 00 00 0 01 0 11 x 10 1 01 0 1 x 1 11 0 1 x x 10 0 1 x x E3 = B3 + B2B0 + B2B1 B1 B0 B3 B2 00 00 0 01 1 11 x 10 0 01 1 0 x 1 11 1 0 x x 10 1 0 x x E2 = B2B1 B0 + B2B0 + B2B1 E2 = B2(B1 + B0 ) + B2(B1 + B0 ) E2 = B2 ⊕ (B1 + B0) B1 B0 B3 B2 00 00 1 01 1 11 x 10 1 01 0 0 x 0 11 1 1 x x 10 0 0 x x E1 = B1B0 + B1 B0 E1 = (B1 ⊕ B 0 ) Pour E 0, il n'est pas nécessaire de faire de table, puisqu'on voit que dans tous les cas E0 = B0 . On a finalement le circuit suivant : B3 B2 B1 B0 E3 B2 B1 B0 E2 B1 B0 E1 B0 E0 4. Quel est le comportement du circuit suivant en supposant qu'initialement Q1Q2= 00, c'est-à-dire quelle est la séquence des états Q1Q2? Justifiez votre réponse. (20 pts) D2 Q2 D1 Q1 Q2 Q1 Ck Suggestion : faites un tableau avec comme en-tête Q2Q1 D2D1 Q2+Q1+. On voit sur le circuit que D2 = Q2 ⊕ Q1 et que D1 = Q 1 . On peut donc écrire la table suivante : Q2Q1 00 01 10 11 Q2+Q1+ 01 10 11 00 D2D1 01 10 11 00 Il s'agit donc d'un compteur modulo-4 ascendant. La suite des états Q2Q1 est 00-0110-11-00 ou la suite des états Q1Q2 est 00-10-01-11-00 : 00 11 01 10