Solution
(1255)10 = 10011100111 (AF15)16 = 1010 1111 0001 0101
(555)8 = 101 101 101
(103) = 01100111 -99 =10011101
01100111+10011101=1 00000100
le dernier retenu est ignoré car les deux derniers retenues sont égaux. Le
résultat est donc correcte.
3. Quel est le nombre décimal représenté par FF0F1A00 écrit en représentation IEEE745 ?
FF0F1A00= 1111 1111 0000 0001 1010 0000 0000 0000
S=1 → négatif C’=11111110=254 → C=254-127=127
N=-1.0000001101*2127=-10000001101*2117=-1037*2117
Exercice II (circuit logique) :
Soit un circuit logique qui détermine si un nombre entre 0 et 15 est divisible sur 5. La sortie est un seul
bit qui est « 1 » si le nombre est divisible par 5 et « 0 » sinon. (Supposons que 0 est divisible par tout
nombre).
1. Donner le tableau de vérité de cette fonction.
2. Donner la fonction logique de ce tableau.
S
Exercice III (microprocesseur) :
Soit le programme suivant ou ADDR-CLAVIER représente l’adresse de registre d’entrée
du clavier:
IN D R1 ADDR-CLAVIER R1← ADDR-CLAVIER]
STORE D R1 A A]←R1
Load Im RB 0 RB ← 0
load I R2 A R2 ← [[A]]
Load D RB A RB ← [A]
Loop: ADD Im RB 4 RB ← RB+4
MUL B R2 0 R2 ← R2*[RB+0]
Load Rg2 R3 RB R3←RB
ADD Im R3 -12 R3←R3-12
JMPP FIN si la valeur est positif aller a fin
JMP loop aller a loop
FIN: STORE D R2 B. [B] ← R2
1. Décrire ce que réalise chaque instruction.
2. Quelle mode d’adressage utilise-t-ont pour les entrée sortie ?
Adressage séparée.
3. Si la valeur entrée par le clavier est 4. Quel est la valeur placée dans le registre R2 et le
registre RB avant le « loop » si la mémoire contient les valeurs dans la figure suivante?
IN D R1 ADDR-CLAVIER
STORE D R1 A
Load Im RB 0
load I R2 A
Load D RB A
Loop: ADD Im RB 4
MUL B R2 0
Load Rg2 R3 RB
ADD Im R3 -12
JMPP FIN
R2←5 et RB←4. Donc RB reçoit la valeur entrée par
JMP loop
le clavier et R2 contient la valeur dans l’adresse de la
FIN: STORE D R2 B.
valeur entrée par le clavier.
4. Quel est la valeur placée dans l’adresse B à la fin du programme ?
B←R2←5*5*5*5
5. Donner les micro-instructions de trois premières instructions et déduire le nombre total des
cycles si l’accès à la mémoire nécessite 2 cycles supplémentaires.
IN D R1 ADDR-CLAVIER IN D R1 ADDR-CLAVIER
COsor, RADen, LEC (3 cycles) STORE D R1 A
RDOsor, RIen, INCO (1 cycle) Load Im RB 0
Xsor, RADen, IN (3 cycles)
RDOsor,R1en (1 cycle)
STORE D R1 A
COsor, RADen, LEC (3 cycles) Load Im RB 0
RDOsor, RIen, INCO (1 cycle) COsor, RADen, LEC (3 cycles)
Xsor, RADen (1 cycle) RDOsor, RIen, INCO (1 cycle)
R1sor, RDOen, ECR (3 cycles) Xsor, RBen (1 cycle)
En total on a : 21 cycles.
Exercice IV (interruption) :
Soit le scenario d’interruption suivant :
T=0ms arrivée de IRQ5 de durée 3ms.
T=2ms arrivée de IRQ3 de durée 3ms.
T=4ms arrivée de IRQ4 de durée 3ms.
Remplir le tableau suivant depuis le début jusqu’au fin des interruptions.
Exercice V (mémoire) :
Soit une mémoire centrale de taille 8Gmots. Chaque mot est de 64bits. On définit une cache de 4 lignes ou
chaque ligne est de 512 mots.
1. Calculer la taille de l’étiquette si le cache est associative.
MC=8*230*8octets = 236 octets → adresse=36bits Ligne=512mots=29*8 octets = 212 octets.
Etiquette = 36-12 = 24 bits.
2. Calculer la taille de l’étiquette si le cache est à correspondance directe.
4 lignes = 22 lignes → indexe= 2 Etiquette = 24 – 2 = 22bits
3. Donner les lignes de répertoire en cache associative avec utilisation de l’algorithme LRU en spécifiant les succès
et défauts dans le scenario d’accès aux adresses suivantes : 000FFF111, 000FEF111, 000FDF111, 000FCF111,
000FFF111, 00011F111.
4. Même question en cache a correspondance directe.
5. Quel inconvénient remarquez-vous en cache à correspondance directe ?
On remarque qu’on a tout le temps des defauts et de remplacement de ligne « 3 » car on utilise
toujours le même index = 11 =3