Vous êtes sur la page 1sur 4

Exercices : Architectures des ordinateurs

Exercice 1: Microcommandes
Soit une machine dont les instructions ont le format « codeopération, modeadressage, registre,
champopérande » avec, par exemple, Im pour modeadressage immédiat, I pour modeadressage
indirect, R1 pour registre R1. Par ailleurs la microcommande InCo permet l’incrémentation du
compteur ordinal.
Nous disposons de la machine matérielle décrite dans le cours. Soient les instructions suivantes :
Load Im, R1, x (charger dans R1 la valeur x)
Load D, R1, x (chargement direct dans R1)
Load I, R1, x (chargement indirect de R1)
Pour chacune de ces instructions donnez la séquence des microcommandes permettant leur
exécution. Quelles conclusions peut-on tirer en matière de temps d’exécution ?
Même question pour :

Add D, R1, x (additionner le contenu de R1 avec le contenu de x ➥ le résultat étant dans


R1)

Exercice 2 : Gestion des interruptions


On considère une machine admettant huit niveaux d’interruptions matérielles numérotés de 0 à 7, le
niveau d’interruptions 0 étant le plus prioritaire et le niveau 7 le moins prioritaire. Le processeur
dispose de deux broches, une broche INT sur laquelle lui parvient le signal d’interruption, une broche
INTA avec laquelle il acquitte les interruptions. Les huit niveaux d’interruptions sont gérés par un
contrôleur d’interruptions.
1. À l’instant 0, le contrôleur d’interruption reçoit les interruptions 2, 5, 4, 6. Quelle interruption est
délivrée au processeur ? Que fait le processeur ?
2. Durant le traitement par le processeur de l’interruption délivrée selon vous à la question 1, le
contrôleur reçoit l’interruption 1. Que se passe-t-il ? Aucune autre interruption n’est délivrée au
contrôleur. Donnez l’ordre de service de ces interruptions par le processeur.
3. Lorsque le processeur prend en compte l’interruption qui lui est délivrée à la question 1, le compteur
ordinal CO contient la valeur 400, qui est l’adresse en mémoire centrale de la prochaine instruction à
exécuter pour le programme en cours. Lorsque le processeur prend en compte l’interruption 1 de la
question 2, le compteur ordinal CO contient la valeur 145, qui est l’adresse en mémoire centrale de la
prochaine instruction à exécuter pour le programme en cours.

pg. 1
La table des vecteurs d’interruptions du processeur est la suivante :

Les adresses en mémoire centrale sont les adresses des mots mémoire ; l’incrémentation du CO,
l’incrémentation ou la décrémentation du pointeur de pile RSP s’effectue par pas de 1.
En reprenant l’ordre de service des interruptions par le processeur tel que vous le donnez en réponse
à la question 2, donnez l’évolution du registre CO, du registre RSP et de la pile.
Vous adopterez la convention suivante :
(RSP –> 1002), PILE : (1000 –> 200, 1001 –> 400), (CO ->300), qui signifie :

pg. 2
Exercice 3 : Cache à correspondance directe
Soit une mémoire de mots de 32 bits, adressée avec des adresses de 32 bits. Le cache à correspondance
directe contient 4 Ko de données utiles. Une entrée du cache contient un bloc de 1 mot mémoire.
1. Calculez la taille réelle du cache.
2. On considère que lors de l’exécution d’un programme, le processeur accède aux mots mémoire
suivants dont les adresses sont : (00000000)16, (00000008)16, (00000001)16, (00001000)16,
(FFFF0008)16, (00000000)16
Le cache est initialement vide. Représentez l’évolution du cache en notant les défauts et les succès.

Exercice 4 : Calcul de la taille réelle d’un cache


Soit une mémoire centrale de 1 Go, composée de mots de 64 bits. On désire réaliser une mémoire
cache pour améliorer les performances du processeur disposant de cette mémoire centrale en lui
ajoutant un dispositif de mémoire cache travaillant par blocs de 8 mots de 64 bits et de capacité utile
égale à 64 Ko. Quelle est la taille réelle de ce cache à correspondance directe ?

Exercice 5 : Cache associatif et remplacement de lignes


Soit un processeur qui dispose d’une mémoire cache associative de quatre entrées.
Les adresses mémoire sont sur 16 bits. Chaque mot mémoire fait 32 bits. La mémoire centrale est
adressable par octet. Chaque entrée du cache contient un bloc de quatre mots.
1. Quelle est la taille de l’étiquette ?
2. Soit la suite de références suivantes, qui correspondent aux accès mémoire demandés par le CPU,
en termes d’adresses d’octets, dans le temps. Les adresses sont données en hexadécimal.

Donnez l’évolution des quatre entrées du répertoire du cache et notez les défauts dans ces deux cas :
a. la politique de remplacement est FIFO; b. la politique de remplacement est LRU.

Exercice 6 : Cache à correspondance directe


Un processeur dispose d’une mémoire cache à correspondance directe de quatre entrées. Les adresses
mémoire sont sur 16 bits. Chaque mot mémoire fait 32 bits. La mémoire centrale est adressable par
octet. Chaque entrée du cache contient un bloc de quatre mots.
1. Quelle est la capacité de la mémoire centrale exprimées en Ko ? En Kmots ?
2. Quelle est la taille de l’étiquette ?
3. Quelle est la taille réelle du cache ?

pg. 3
Exercice 7 : Entrées-sorties programmées et entrées-sorties par interruption
Une unité périphérique de type imprimante est considérée. ETAIMP est le registre d’état de
l’imprimante tel que le bit de poids fort de ETAIMP est à 1 si l’imprimante est prête et à 0 sinon.
SORIMP est le registre de données de l’imprimante. Cette machine représente les nombres signés
selon le format du complément à 2.
1. On souhaite écrire un programme réalisant une opération d’entrées-sorties programmée qui
permet le transfert de 80 caractères depuis la mémoire à partir de l’adresse EMPL vers cette
imprimante. Le registre RB contient l’adresse de la donnée dans la mémoire principale (initialement
EMPL). Le registre R1 contient le nombre de caractères restants à transférer.
2. On suppose à présent que la fin de transfert de chaque caractère par l’unité d’échange vers
l’imprimante est signalée par une interruption. Écrivez le code de la routine d’interruption associée.

pg. 4

Vous aimerez peut-être aussi