Principes de Fonctionnement
des Ordinateurs
- Mémoires -

Frédéric Boulanger
frederic.boulanger@centralesupelec.fr

CentraleSupélec
3e année mention Science du logiciel

Mémoires


Mémoires


La mémoire permet de stocker des informations
  • dans le processeur : bascules, registres ($< 1 \textsf{ns}$)
  • dans ou hors du processeur : mémoire statique ($\approx 10\textsf{ns}$)
  • hors du processeur : mémoire dynamique ($\approx 100 \textsf{ns}$)
  • hors du processeur : mémoire flash ($\approx 10 \mu\textsf{s} / 50\textsf{ns}$)
  • hors du processeur : disque magnétique ($\approx 10 \textsf{ms}$)
  • hors du processeur : disque optique ($\approx 150 \textsf{ms}$)

Mémoires


Non volatile

Le contenu est préservé en l'absence d'alimentation
  • ROM (Read Only Memory), mémoire morte
    contenu figé à la conception
  • PROM (Programmable ROM)
    contenu programmable une seule fois (fusibles)
  • EPROM (Erasable PROM)
    contenu programmable et effaçable (par UV)
  • EEPROM (Electrically Erasable PROM)
    contenu programmable et effaçable électriquement
  • Mémoire flash (Electrically Erasable PROM)
    effaçable électriquement par page (grille flottante)

Mémoires


Volatile

Le contenu est perdu en l'absence d'alimentation
  • SRAM (Static Random Access Memory)
    contenu stable (bascules RS, 6 transistors), rapide
  • DRAM (Dynamic RAM)
    contenu évanescent (capacité), lecture destructrice
  • SDRAM (Synchronous DRAM)
    Mémoire dynamique fonctionnant de manière synchrone
  • DDR SDRAM (Double Data Rate SDRAM)
    SDRAM permettant deux accès par cycle d'horloge (un par front)

Mémoires


Structure d'un boîtier

Les cellules de mémoire sont organisées en matrice
  • une partie de l'adresse sélectionne une ligne, l'autre une colonne
  • pour la mémoire dynamique, on rafraîchit colonne par colonne

Mémoires


Modules

Les boîtiers de mémoire sont organisées en modules
  • SIMM (Single Inline Memory Module)
  • DIMM (Dual Inline Memory Module)

Mémoires


Mémoire centrale

  • mémoire située près du processeur
  • RAM, mémoire flash
  • de quelques Mo à quelques Go

Mémoire de masse

  • stockage de longue durée
  • disques durs magnétiques, SSD
  • plusieurs centaines de Go à quelques To

Archivage

  • stockage de très longue durée
  • bandes magnétiques
  • centaines de To
  • lent, accès séquentiel, faible coût

Hiérarchies de mémoires


Le problème

  • rapide $\Rightarrow$ cher + faible capacité (SRAM)
  • grande capacité $\Rightarrow$ lent (DRAM, disque)

Solution

  • combiner une petite mémoire rapide…
  • … avec une grande mémoire lente
  • et faire en sorte que les données voulues
    soient souvent dans la mémoire rapide !

Hiérarchies de mémoires


Principes

Localité temporelle
Quand on accède à une donnée, il y a des chances
qu'on y accède de nouveau bientôt :
  • boucles
  • usage répété de variables
Localité spatiale
Quand on accède à une donnée, il y a des chances
qu'on accède ensuite à des données voisines :
  • séquentialité du code, boucles
  • tableaux, codage contigu de l'information

Hiérarchies de mémoires


Application

Localité temporelle
  • on conserve dans une mémoire rapide
    les données que l'on consulte
  • quand la mémoire rapide est pleine,
    on élimine les données les plus anciennes
Localité spatiale
  • on charge dans la mémoire rapide les données
    voisines de celle que l'on consulte
On mémorise d'où viennent les données présentes
dans la mémoire rapide (descripteur)

Hiérarchies de mémoires


Cache

  • petite mémoire statique, grande mémoire dynamique
  • caches L1 séparés pour les instructions et les données

Cache de disque

  • mémoire dynamique, disque dur :
    but = accélerer les accès au disque

Mémoire virtuelle

  • mémoire dynamique, disque dur :
    but = augmenter la capacité mémoire

Suite…

Entrées-sorties