TD pour la partie 2 du cours d'A.O.
I. Exercices sur la partie "mémoires"
1. Listez les différences entre des mémoires volatile, dynamique et statique.
2. On considère une mémoire centrale de 2 MBytes où chaque octet est
adressable séparément (→ adresse = "nombre d'octets depuis 0") :
a) Calculer l'adresse, en octal, du sixième élément d'un tableau dont
l'adresse du premier élément est 778, et dont tous les
éléments sont composés de 16 bits ;
b) calculer, en décimal, le nombre d'octets précédant l'adresse 77 8 ;
c) calculer la taille de cette mémoire en l'exprimant en mots de 16 bits
puis en mots de 32 bits.
3. Si le registre d'adresse d'une mémoire comporte 32 bits, calculer:
a) le nombre de mots adressables si 1 mot = 1 byte;
b) la plus haute adresse possible pour ces mots de 1 byte;
c) le nombre de mots adressables si 1 mot = 32 bits;
d) la plus haute adresse possible pour ces mots de 32 bits.
4. Répondre par "oui" ou "non" aux questions suivantes concernant une
recherche dans une mémoire associative (note : souvent, quand une partie d'une question n'a
pas de sens, la bonne réponse est "non") :
a) la valeur à la position X est-elle supérieure à celle à la position Y ?
b) y a-t-il une position contenant la valeur A ?
c) la valeur C est-elle stockée à la position X ?
d) la valeur de la position X est-elle égale a la valeur de la position Y ?
5. Répondre par oui ou non aux questions suivantes concernant une
mémoire entrelacée (donc divisée en blocs) :
a) il y a 1 registre d'adresse et 1 registre mot-mémoire pour toute la mémoire ?
b) il y a 1 registre d'adresse et 1 registre mot-mémoire par bloc de mémoire ?
c) cette mémoire entrelacée est forcément utilisée comme antémémoire ?
d) chacun des blocs contient un programme différent ?
e) les instructions d'un même programme sont réparties sur plusieurs blocs ?
1/48
6. Calcul du temps moyen de transfert en mémoire centrale (M.C.) d'un fichier
séquentiel stocké sur disque. Les échanges entre l'unité de disque et la
M.C. s'effectuent par l'intermédiaire d'un canal.
Une zone de mémoire tampon, associée au disque, reçoit les caractères
lus sur le disque. Le transfert vers la M.C. s'effectue quand la zone tampon
est pleine ou quand le fichier a été entièrement lu.
Les caractéristiques de l'unité de disque, du fichier et du canal sont les suivantes:
1) le temps moyen de positionnement de la tête de lecture sur une piste est de 20 ms ;
2) la vitesse de rotation du disque est de 6000 tours par minute ;
3) chaque secteur contient 1024 bits dont 64 sont réservés pour un pointeur vers le
secteur suivant (du fichier) ;
4) le disque est composé de 128 cylindres ;
5) une piste comporte 32 secteurs ;
6) tous les secteurs d'un fichier sont répartis dans un même cylindre;
7) le fichier contient 1500 caractères ;
8) chaque caractère est codé sur 7 bits + 1 bit de parité ;
9) la vitesse de transfert du canal est de 10 MBytes/seconde ;
10) la taille de la zone tampon est de 4096 caractères.
Déterminer :
a) le temps moyen pour lire un secteur (en supposant que la tête de
lecture soit sur la bonne piste);
b) le nombre de secteurs nécessaires au stockage du fichier;
c) le temps moyen de transfert de ce fichier entre le disque et la M.C. ;
d) quels sont les facteurs limitatifs de ce transfert.
7. Soit une mémoire centrale de 1 Mmots de 32 bits réalisée avec des puces
de 16Kbits. Cette mémoire peut être organisée suivant plusieurs principes.
Considérez les trois principes suivants :
• un bit par puce : un mot est constitué de 32*1 bit provenant chacun d'une puce différente,
donc 32 puces sont nécessaires pour réaliser un mot;
• 16 bits par puce : un mot est constituée de 2*16 bits; deux puces sont donc nécessaires pour
former un mot de 32 bits;
• 32 bits par puce : un mot est constitué de 1*32 bits.
Calculer :
a) le nombre de bits nécessaires pour adresser toute la mémoire dans chacun des cas;
b) le nombre de pattes (de chaque puce) utilisées pour l'adressage et pour les données
dans chacun des cas.
2/48
II. Exercices sur les parties "bus", "registres" et "CPU"
1. Qu'est-ce qu'un bus ?
2. Quelles sont les différences fondamentales entre les langages machine
et les langages évolués ?
3. Décrire les cycles de recherche et d'exécution d'une instruction.
4. Quelle est la différence entre un séquenceur câblé et un séquenceur
micro-programmé ?
5. Réaliser un programme qui calcule l'expression suivante dans une
machine à 1 adresse et dans une machine à 0 adresse :
R = A - (B / (C+D)) + (E*F) - G
6. Etant donné les contenus des registres et des mémoires suivants:
XR1 = 1; XR2 = 2; B1 = 1000; B2 = 2000;
^1000 = 0; //en mémoire, à l'adresse 1000, il y a le nombre 0
^1001 = 1; ^2000 = 2; ^2001 = 3; ^3000 = 4; ^3001 = 5; ^0 = 1000;
a) Trouver, comme dans les 3 premiers exemples ci-dessous,
la valeur qui est mise dans l'accumulateur (le registre ACC)
à la fin des 4 dernières opérations ci-dessous:
LOAD 1000, IMM; // ACC <- 1000 ("IMM" veut dire "immédiat")
LOAD 3000, XR1; // <=> LOAD 3000+1 <=> LOAD 5,IMM
// => ACC <- 5
LOAD 0, I; // <=> LOAD 1000 //car "I" veut dire "indirect"
// <=> LOAD 0,IMM // => ACC <- 0
LOAD 1000, B1; LOAD 1, B2; LOAD 999, XR2; LOAD 0,I
b) Quelle est la valeur de F après l'exécution du programme suivant :
LOAD 3000; ADD 2000,XR1; SUB 2001,B1; MPY 1001,B2 ;
DIV 2000; ADD 1000,IMM; SUB 0,I,XR1; STORE F
7. Soit une machine dotée d'une mémoire centrale de 512 Kmots de 32 bits.
Sachant que l'instruction-type occupe un mot-mémoire, quelles tailles
proposeriez-vous pour les registres CO et RI ?
3/48