Académique Documents
Professionnel Documents
Culture Documents
Interrogation N°1
Documentation non autorisée – Durée : 35 minutes
2. Sachant que le bus d'adresses d'un processeur est de 16 bits et que le bus de données est d'un
octet, quelle est la taille de l'espace mémoire maximum que celui-ci peut adresser ?
La taille de l'espace mémoire maximum = 216 x 8 bits = 26 x 210 octets = 64 Ko. (1 point)
3. Qelle doit être la taille du bus d'adresses d'un processeur 16 bits pour qu'il puisse accéder à
une mémoire de 32 Ko ?
La taille de l'espace mémoire maximum = 32 Ko = 25 x 210 x 8 bits = 214 x 16 bits
Donc, la taille de bus d'adresses = 14 bits. (1 point)
4. Classez les mémoires suivantes par taille : RAM, registres, disques dur, cache L1, cache L2,
CD-ROM.
Registres < Cache L1 < Cache L2 < RAM < CD-ROM < Disques dur. (1,5 point)
5. Supposons que le temps d'accès à une mémoire cache est de 5ns, et que le temps d'accès à la
mémoire principale est de 100ns. Si le temps d'exécution d'un programme est de 95ns :
a) Dans quelle mémoire se trouvent ses instructions ? Justifier.
Puisque le temps d'exécution du programme est inférieur au temps d'accès à la mémoire
principale, nous pouvons déduire que toutes les instructions du programme se trouvent
en mémoire cache. (1 point)
Qel principe de localité peut-on appliquer sur les variables sum et tab[i] ? Justifier.
Pour la variable sum, on peut appliquer le principe de localité temporelle car le programme
y accède fréquemment. (1 point)
Pour la variable tab[i], on peut appliquer le principe de localité spatiale car le programme y
accède en séquence. (1 point)
b) Donnez le nombre de bits nécessaires pour coder chaque champ d'une adresse.
Dans un cache direct, les adresses sont divisées en 03 champs : étiquete, index, et ofset.
Comme les lignes font 128 octets = 27 octets, la position d'une donnée dans une ligne (offset')
est codée sur 7 bits. (0,25 point)
Le cache a une taille de 4 Ko = 212 octets, il possède donc 212 / 27 = 25 lignes (entrées). L'index
est donc codé sur 5 bits. (0,25 point)
On en déduit que l'étiquete (tag) est codée sur 32 – (7 + 5) = 20 bits. (0,25 point)
9. Soit un cache direct de 16 Ko dont les lignes font 256 octets. Parmi les adresses suivantes,
laquelle entraîne un défaut de cache conflictuel avec l'adresse 0x1283458678 ? Justifier.
□ 0x1283458677
✔ 0x1283418666 (0,25 point)
□ 0x1183358577
✔ 0x1181158678 (0,25 point)
Justification : (1 point)
Les défauts de cache conflictuels se produisent lorsque diférents blocs (adresses) ont les
mêmes bits pour le champ index.
Dans ce cas, le cache possède des blocs de 256 octets = 28 octets, ce qui signifie que la
position d'une donnée (offset) est codée sur 8 bits.
Ainsi, les deux derniers chifres de ces adresses peuvent être ignorés puisqu'ils ne font
pas partis de l'index.
Le cache a une taille de 16 Ko = 214 octets, il possède donc 214 / 28 = 26 lignes.
L'index est donc codé sur 6 bits.
Les 6 bits de l'index appartiennent au deux prochains chifres de l'adresse hexadécimale,
qu'il sufit d'écrire en binaire et de comparer à l'index de l'adresse donnée (01 0110)2.
Les adresses ayant le même index ne sont pas forcément conflictuelles puisqu'elles
peuvent appartenir au même bloc. Il faut donc également comparer la partie tag.
10. Qels sont les inconvénients de l'algorithme de remplacement LFU (Least Frequently Used) ?
L'algorithme LFU présente un problème quand une donnée est très utilisée pendant la phase
initiale d'un programme, mais qu'elle n'est plus employée à nouveau par la suite.
Comme elle a été fréquemment utilisée, elle possède un grand compte et reste donc en cache
même si elle n'est pas utilisée par la suite. (1 point)