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