Université de Jijel Electronique
Faculté des sciences exactes et informatique 1ere année LMD
Département de MI 21 Janvier 2016
Contrôle pour Electronique de Composants de base
Mr. Z.Mahrouk
(Documents non autorisés)
Durée : 1heure45minutes
Question de cours (7 points)
1. Donner la hiérarchie des mémoires. (1 point)(ne pas prendre en compte la
vitesse et la capacité).
2. Dessiner le schéma fonctionnel de l’unité centrale. (1 point)
3. Donner une comparaison entre la DRAM et la SRAM. (1 point)
DRAM SRAM
Volatile Volatile
Chaque bit est représenté par 2 Chaque bit est représenté par 4 à 6
transistors transistors
Page 1 sur 4
Nécessite une opération de N’a pas besoin de rafraîchissement
rafraichissement
Très grand capacité de stockage Capacité moyenne
4. Citer les différents types de la mémoire morte. Expliquer la EEPROM. (2 points)
ROM, PROM, EPROM, EEPROM, FLASH EPROM
EEPROM : est une mémoire programmable et effaçable électriquement. Elle
répond ainsi a l’inconvénient principal de l’EPROM et peut être programmée in
situ.
5. Qu’est qu’un jeu d’instruction ? (1 point)
Le jeu d’instructions décrit l’ensemble des opérations élémentaires que le
microprocesseur pourra exécuter.
6. Quelle est l’utilité de la ROM ? (1 point)
Stocker les données critiques, pour éviter la perte (exp : BIOS)
Exercice1 (4 points)
Un CPU exécute un programme composé de n instructions. Chaque instruction
nécessite en moyenne 8 cycles pour s’exécuter. De plus, chaque instruction fait en
moyenne 3 accès mémoire. Dans le cas où l’information est dans la mémoire cache, il
n’y a pas d’attente, par contre, aller la chercher en mémoire nécessite 6 cycles.
1. On considère que le cache est inefficace et que toutes les données sont
ramenées de la mémoire. Combien de cycles se programme prend-il pour
s’exécuter ? nbre de cycle = n x (8 + 3 x 6) = 26 n cycles (1 point)
2. Si maintenant le cache a un taux de succès de 100%, quel est le nombre de
cycles ? nbre de cycle = n x 8 = 8 n cycles (1 point)
3. En pratique, notre cache a un taux de réussite de 11%. Quel est le nombre de
cycles nécessaires pour exécuter ce programme ? Comparez-le au nombre sans
cache. Nbre de cycle = n x (8 + 3 x 6 x 0.89) = 24.02 n (1 point)
Taux = 26 / 24.02 = 1.083 (pour chaque instruction on gagne 0.083 cycle) (1 point)
Exercice2 (4 points)
Soit un processeur cadencé à 3 GHz qui travaille avec un format de données de 32 bits
et possédant des bus de données et d'adresses de même taille.
1. Quelle est la taille du bus de données et d'adresses ?
Taille bus de données = taille bus d’adresse = 32 bits (1 point)
2. Quel est le cycle d'horloge de ce processeur ?
Cycle d’horloge = 1/f = 1/ 3 x 109 = 0.33 ns (1 point)
3. Quel est le nombre de cases mémoire que peut adresser ce processeur ? Quelle
est la taille maximale de la mémoire de ce processeur ?
Page 2 sur 4
Nombre de case = 2taille bus d’adresse = 232 = 4 294 967 296 cases (0.5 point)
Taille maximal = nbre de case x taille de chaque case (format de donnée) =
232 x 32 = 234 o = 16 Go (0.5 point)
4. Si cette mémoire a un temps d’accès de 15 cycles et un temps d’opérations
internes de 10 cycles pour lire 2 octets, quel est le débit de cette mémoire ?
Débit = nbre octets lus / temps de cycle = 2 / (15 + 10) * 0.33 ns = 242.42 Mo (1 point)
Exercice3 (5 points)
Soit un processeur cadencé à 3.4 Ghz, muni des trois registres Ax, Bx et Cx, et qui
reconnait le jeu d’instruction imaginaire suivant :
Instruction Description Code Instr
Affecter registre, valeur Mettre une valeur dans un des registres 1001 1111
Affecter registre1, registre2 Mettre la valeur du registre2 dans le 1001 1110
registre1
Ajouter registre1, registre2 Ajouter le nombre dans registre2 à la 1000 0111
valeur dans registre1
Multiplier registre1, registre2 Multiplier le nombre dans le registre2 à la 1000 1111
valeur dans registre 1
SiZero adresse Sauter vers adresse si la valeur dans Ax est 1010 0111
égale à zéro
SiNonZero adresse Sauter vers adresse si la valeur dans Ax est 1010 0001
différente de zéro.
Lire Lire une valeur entière de l’utilisateur et 1001 0001
l’écrire dans Ax
Ecrire registre Ecrire la valeur du registre Ax ou Bx à 1001 0010
l’écran
Décrémenter Enlever 1 à la valeur du registre Ax 1000 0101
1. Ecrire un code assembleur (commençant à l’adresse 0000 0000), permettant de
lire deux nombre (respectivement X et n, en supposant que X est entiers et n et
naturel), calcule et affiche la valeur de Xn. (il faut vérifier les solutions, il y en a
plusieurs) (2 points).
Lire
Affecter Bx,Ax
Lire
Affecter Cx,1
Multiplier Bx,Cx
Décrémenter
SiNonZero [0008]
Ecrire Bx
Page 3 sur 4
2. En donnant les codes des registres Ax, Bx et Cx qui sont respectivement : 0000
0001, 0000 0010 et 0000 0011, traduisant le code assembleur de la question 1
en code machine écrit en Hexadécimal
919E0201919F03018F020385A1089202 (1.5 points)
3. Si chaque instruction prend en moyenne 4 cycles horloge pour s’exécuter,
donner le temps d’exécution si l’utilisateur entre 3 et 4.
On exécute 17 instructions, donc : 17 * 4 = 68 cycles horloges (0.75 point)
Temps d’exécution = 68 x 1/3.4 x 109 = 20 ns (0.75 point).
Page 4 sur 4