Cours 1 : Format de données
Q1.1 : Supposons un nombre entier positif représenté sur 8 bits. Écrivez 4, 12, 83 et 242 en
binaire et en hexadécimal.
4 = 0000 0100b = 04h
12 = 0000 1100b = 0Ch
83 = 0101 0011b = 53h
242 = 1111 0010b= F2h
Q1.2 : Supposons un nombre entier positif représenté sur 16 bits. Écrivez 34211 (base 10)
en base 12 (A = 10, B = 11, Par exemple, 154 en base 10 vaudrait 10A en base 12.
34211/12 = 2850 reste 11
2850/12 = 237 reste 6
237/12 = 19 reste 9
19/12 = 1 reste 7
reste 1
Réponse : 1796B12
Vérification : 1*12^4 + 7*12^3 + 9 * 144 + 6*12 + 11 = 20736 + 12096 + 1379 = 34211
Q1.3 : Supposons des nombre entiers signés représentés sur 8 bits en notation complément
2. Écrivez, en hexadécimal, la valeur des nombres suivants : -1, -81, -127.
-1 = FFh
-81 = AFh
-127 = 81h
-1, sur 8 bits en C2 est 1111 1111b (-128 + 64 + 32 +16 +8 + 4 + 2 + 1).
Pour obternir 1111 1111b, vous pouvez aussi prendre 1 (0000 0001b), l'inverser (1111 1110b), puis ajouter 1
1111 1111b en binaire est FFh car F = 8+4+2+1.
-81, sur 8 bits en C2 est 1010 1111b (-128 + 0 + 32 + 0 +8 + 4 + 2 + 1).
Pour obternir 1010 1111b, vous pouvez aussi prendre 81 (0101 0001b), l'inverser (1010 1110b), puis ajouter 1
1010 1111b en binaire est AFh car A = 10 = 8+2.
-127, sur 8 bits en C2 est 1000 0001b (-128 + 0 + 0 + 0 + 0 + 0 + 0 + 1).
Pour obternir 1000 0001b, vous pouvez aussi prendre 127 (0111 1111b), l'inverser (1000 0000b), puis ajouter 1
1000 0001b en binaire est 81h.
Q1.4 : Écrivez 1d, -1d, -32768d et 32767d en binaire, en utilisant la notation complément 2,
sur 16 bits. Écrivez aussi ces nombres en hexadécimal.
1 = 0000 0000 0000 0001b ou 0x0001
-1 = 1111 1111 1111 1111b ou 0xFFFF
-32768 = 1000 0000 0000 0000 ou 0x8000
32767 = 0111 1111 1111 1111 ou 0x7FFF
Q1.5 : Supposons des nombre entiers signés représentés sur 8 bits en notation complément
2. Additionnez les nombres hexadécimaux suivants (le «h» signifie hexadécimal):
a) 1Ah + 41h
b) 6Bh + 17h
c) 01h + FCh
d) D3h + 5Ah
e) 80h + 91h
f) E1h + E5h
a -> 5Bh pas de carry, ni d’overflow
b -> 82h pas de carry, overflow
c -> FDh pas de carry, ni d’overflow
(+001) 0000 0001 +
(-004) 1111 1100 =
(-003) 1111 1101 Il n'y a pas de retenue, ni de débordement (le résultat est entre -128 et 127)
d -> 2Dh carry, pas d’overflow
(-045) 1011 0011 +
(+090) 0101 1010 =
(+45) 1 0000 1101 Il y a une retenue mais pas de débordement (le résultat est entre -128 et 127)
e -> 11h carry et overflow
f -> C6h carry, pas d’overflow
Q1.6 : Pour quel(les) addition(s) de la question précédente y a-t-il une retenue (carry)? Un
débordement (overflow)?
Voir Q1.4!
Q1.7 : Supposons des nombre entiers signés représentés sur 8 bits en notation complément
2. Effectuer les soustractions suivantes:
a. A2h 07h
b. 41h 7Ah.
c. 21h 9Fh
d. C2h 51h
a > 9Bh pas d’emprunt, pas de débordement
b > C7h emprunt, pas de débordement
c > 82h emprunt, débordement
d > 71h pas d’emprunt, débordement
Q1.8 : Pour quel(les) soustraction(s) de la question précédente y a-t-il un emprunt
(borrow)? Un débordement (overflow)?
Voir Q1.6!
Q1.9: Si C1280000h est une fraction représentant un nombre sur 32bits dans le format
IEEE754, quelle est la valeur décimale de ce nombre?
En binaire, C1280000h s'écrit 1100 0001 0010 1000 0000 0000 0000 0000.
Le signe est négatif car le premier bit est 1: "1" 100 0001 0010 1000 0000 0000 0000 0000
L'exposant vaut 130: 1 "100 0001 0" 010 1000 0000 0000 0000 0000
La mantisse vaut 1/4 + 1/16: 1100 0001 0 "010 1000 0000 0000 0000 0000"
Selon la norme IEEE 754, le nombre est -1^signe * 2^(exposant-127) * 1.mantisse
Donc, le nombre est -1 * 2^3 * 1.3125 = -10.5
Q1.10: Écrivez 5 sur 32 bits en utilisant le format IEEE754. Vous pouvez vous inspirer de
l’algorithme suivant :
1) Déterminer le bit de signe (le bit vaut 1 si le nombre est négatif)
2) Déterminer l’exposant. La valeur de l’exposant est 127 + arrondi_inférieur(
log2(Nombre)).
3) Déterminer la mantisse comme suit.
a. Mettre le bit de signe positif
b. Diviser le nombre par 2^(Exposant-127)
c. Soustraire 1
d. Pour chaque de i allant de 1 à 23
i. Vérifier si le nombre est supérieur à 2^(-i)
ii. Si oui, mettre le bit i de la mantisse à 1 et soustraire 2^(-i) au
nombre. Notez que le bit le plus significatif de la mantisse apparait
lorsque i vaut 1.
5 = 0 10000001 01000000000000000000000
Q1.11 L’ENIAC, considéré par certain comme étant le premier ordinateur, a-t-il été
terminé avant ou après la seconde guerre mondiale?
La construction de l’ENIAC a débuté en 1943, mais elle s’est terminée en 1946.
Q1.12 a) Donnez un exemple d’addition sur 8 bits en notation complément 2 où on obtient
une retenue au neuvième bit. b) Donnez également un exemple de soustraction où on
emprunte un neuvième bit, toujours sur 8 bits en notation complément 2.
a) Lorsque vous additionnez deux chiffres négatifs, il y a toujours une retenue sur le neuvième bit. Il y a aussi
une retenue sur le neuvième bit lorsque vous additionnez un chiffre positif avec un chiffre négatif et que le
résultat de l’addition est nul ou positif.
b) Il y a toujours un emprunt sur le neuvième bit lorsqu’on soustrait un nombre négatif à un nombre positif.
Lorsque vous soustrayez deux chiffres positifs et que le résultat est négatif, il y a aussi un emprunt sur le
neuvième bit. Finalement, il y a un emprunt sur le neuvième bit si on soustrait deux nombres négatifs et que le
résultat de la soustraction est négatif.
Q1.13 : Si un microprocesseur moderne a N transistors par cm2 et si la loi de Moore est
respectée pour les 25 prochaines années, combien de transistors par cm2auront les
microprocesseurs dans 25 ans?
Si on assume que le nombre de transistor double à tous les deux ans, alors la réponse sera :
2
25
25 2*NN ans
Q1.14 : Le premier microprocesseur en circuit intégré avec transistors MOS est-il apparu
avant ou après le premier pas de l’homme sur la lune, c’est-à-dire avant le 21 juillet 1969?
Le premier microprocesseur avec transistors (le 4004 d’Intel) est apparu en 1971…
Q1.15 : Vous retrouvez, en mémoire, la séquence de nombres suivante : 0x41, 0x4C, 0x4C,
0x4F. Sachant que cette séquence représente un mot codé en ASCII, quel est ce mot?
ALLO
Cours 2 : Structure générale d’un ordinateur
Q2.1 : Qui contrôle le bus d’adresse? Le bus de données? Le bus de contrôle?
Bus d’adresse: CPU ou contrôleur de DMA avec l’aval du CPU
Bus de données: La personne désignée par le bus d’adresse et le bus de contrôle.
Bus de contrôle: CPU ou contrôleur de DMA avec l’aval du CPU
Q2.2 : Quand le microprocesseur de votre ordinateur ira-t-il lire une instruction de la
mémoire? Quand le microprocesseur de votre ordinateur ira-t-il lire ou écrire une donnée
de la mémoire?
Le microprocesseur lira des instructions de la mémoire dès le démarrage de l’ordinateur. Il lira ensuite les
instructions une après l’autre à moins de rencontrer une instruction qui lui dise de faire autrement.
Le microprocesseur lira ou écrira une donnée de la mémoire s’il rencontre une instruction lui demandant de le
faire.
Q2.3 : Si un bus d’adresse a 5 lignes, un bus de donnée à 8 lignes et un bus de contrôle a
deux lignes (lecture et écriture), combien de bits peuvent être adressés et lus/écris par ces
bus?
2^5 adresses * 8 bits/adresse = 2^8 = 256
Q2.4 : Quelle est la séquence d’opération effectuée par le CPU pour…
… lire une donnée en mémoire?
… lire une instruction en mémoire?
… écrire une donnée en mémoire?
Lire une donnée ou une instruction :
- Changer les lignes d’adresse
- Activer le signal de lecture de la mémoire
- Lire les données sur le bus de données
Écrire une donnée ou une instruction :
- Changer les lignes d’adresse
- Mettre des données sur le bus de données
- Activer le signal d’écriture de la mémoire
Q2.5 : Qu’est-ce qu’un ALU et quel est sont rôle?
ALU = Arithmetical and Logical Unit. L’ALU est la partie du CPU qui exécute les opérations mathématiques.
Q2.6 : Qu’est-ce qu’un registre?
Une variable du CPU à accès très rapide et étroitement reliée au fonctionnement de ce dernier.
Q2.7 : Supposons le système suivant :
R1 = adr (16)
R2 = 3
R1 = R1+ R2
adr (17) = R1
JMP adr (8)
X
X
X
007
006
005
004
003
002
001
000
EMémoire 1
5
Y
X
X
X
X
X
X
007
006
005
004
003
002
001
000
Mémoire 2
ADR E
ADR
A4
A3
A2-A0
D7-D0
CPU 3
8
Data DataR W R W
Read memory
Write memory
Dans ce système, un bus d’adresse de 5 lignes permet d’accéder à 32 adresses différentes. Les
adresses 8 à 15 accèdent à la mémoire 1, car A3 active cette dernière. Les adresses 16 à 23
accèdent à la mémoire 2, car A4 active cette dernière. Les mémoires, le CPU et le bus de
donnée ont 8 bits. Par ailleurs, il existe deux lignes formant le bus de contrôle : Read memory
et Write memory. Ces lignes permettent de lire ou écrire en mémoire.
Le CPU possède au moins les registres R1, R2, IR, PC et MAR. Les registres R1 et R2 sont
équivalents à des variables 8 bits utilisées pour différentes opérations arithmétiques, logiques
ou autres. Le registre IR contient l’instruction en cours d’exécution. Le registre PC détermine
quelle sera la prochaine instruction exécutée par le CPU. Il est incrémenté automatiquement à
la fin d’une instruction, sauf pour l’instruction JMP. Finalement, le registre MAR fixe la
valeur des lignes d’adresse du CPU. Si ce registre contient 5 par exemple, A0 et A2 seront à
« 1 » et A1, A3 et A4 seront à « 0 ».
Le CPU est capable d’exécuter plusieurs instructions : il peut mettre le contenu d’une case
mémoire dans un registre et vice versa, il additionner des registres, il peut mettre des
constantes dans un registre, il peut effectuer des sauts inconditionnels (l’instruction JMP
change la valeur du PC, i.e. JMP 12 équivaut à PC = 12!), il peut…
Sachant que la valeur initiale de PC est 8 et que le CPU exécute une instruction par coup
d’horloge, décrivez ce que fera cet ordinateur dans les prochains coups d’horloge. Dites
quelles seront les valeurs des bus (contrôle, données, adresse), des registres et des cases
mémoire.
Fetch instruction 1 :
1 / 13 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !