Aller au contenu principal

Mémoire

Objectifs

Comment stocker des données ?

Cours

F pour passer en plein écran ou O pour afficher la vue d'ensemble.
Versions sans animation, plein écran, imprimable.

Exercices

Accès mémoire

Voici l'état de départ de la mémoire :

AdresseValeur
00x73
10x42
20xBE
30xF3

Sur combien de bits sont codées les adresses ?

Solution

22 = 4 adresses, donc 2 bits.

Sur combien de bits sont codées les valeurs ?

Solution

0x73 = 0111 00112 (chaque caractère hexadécimal est codé sur 4 bits), donc 8 bits.

Que vaut mémoire[2] ?

Solution

mémoire[2] = 0xBE

Que vaudra la mémoire après les instructions suivantes ?

mémoire[1] = 0xF2
mémoire[0] = 0x42
mémoire[1] = 0x06
Solution
AdresseValeur
00x42
10x06
20xBE
30xF3

Cache

Voici l'état de départ de la mémoire :

AdresseValeur
00x1A
10x0E
20x32
30xB2

On a un cache de 2 lignes qui est vide.

Pour chacune de ces lectures, indiquez d'où provient la valeur :

  1. mémoire[0]
  2. mémoire[3]
  3. mémoire[0]
  4. mémoire[3]
  5. mémoire[2]
  6. mémoire[0]
  7. mémoire[0]
  8. mémoire[1]
Solution
  1. mémoire[0] : mémoire (le cache était vide)
  2. mémoire[3] : mémoire (le cache contenait 0)
  3. mémoire[0] : cache (le cache contenait 0 et 3)
  4. mémoire[3] : cache (le cache contenait 0 et 3)
  5. mémoire[2] : mémoire (le cache contenait 0 et 3)
  6. mémoire[0] : mémoire (le cache contenait les deux dernières valeurs lues, donc 2 et 3)
  7. mémoire[0] : cache (le cache contenait 0 et 2)
  8. mémoire[1] : mémoire (le cache contenait 0 et 2)

Références