1architecture Materielle
1architecture Materielle
1architecture Materielle
1
Cours Architecture matérielle NSI
Aujourd’hui, une des principales limitations du modèle est la différence de vitesse entre les
microprocesseurs (nombre d’opérations par seconde) et la mémoire (temps d’accès) qui reste
beaucoup plus lente qu’un CPU. Cette différence est en partie palliée par la présence de multiples
mémoires cache, sans lesquelles les processeurs modernes passeraient leur temps à attendre des
données en provenance de la mémoire. Cette différence de vitesse est parfois appelée le goulot
d’étranglement du modèle de Von Neumann.
2.2 Mémoires
La vitesse d’accès aux données contenues dans la mémoire est inversement proportionnelle à la
quantité de cette mémoire disponible dans un ordinateur, essentiellement parce que le prix d’une
mémoire rapide est beaucoup plus élevé que celui d’une mémoire lente.
Remarques importantes :
• les registres sont des mémoires situées à l’intérieur du processeur
• les registres, les mémoires cache et la mémoire vive perdent leurs données si elles ne sont
plus alimentées électriquement. Seul les disques durs (et SSD) permettent de stocker des
données lorsque la machine est éteinte.
Question : Lorsqu’on parle de mémoire dans le modèle de Von Neuman, de quelle mémoire parle
t-on ?
2
Cours Architecture matérielle NSI
III – Organisation de la mémoire (RAM)
3.1 généralités
Comme nous l’avons vu, la mémoire de l’ordinateur (à ne pas confondre avec les périphériques de
stockage comme disques durs, SSD ou clés USB) contient à la fois :
• les instructions du programme à exécuter
• ainsi que les données manipulées par ce programme.
En première approximation, la mémoire d’un ordinateur peut être vue
comme un tableau de cases mémoires élémentaires, appelées mots mémoire.
Selon les ordinateurs, la taille des mots varie de 8 à 64 bits. Chaque case
possède une adresse unique à laquelle on se réfère pour accéder à son
contenu. Ce tableau est par convention représenté verticalement avec les
premières adresses en bas du schéma.
L’espace mémoire d’un processus est découpé en 4 parties ou segments :
• le segment de code contient les instructions du programme
• le segment de données, qui contient les données dont l’adresse
mémoire et la valeur sont connues au moment de l’initialisation. La
taille de cet espace est donc fixe.
• Les segments de pile et du tas sont des espaces alloués
dynamiquement par un programme :
◦ La pile est utilisée au moment de l’appel de fonctions pour stocker les paramètres et
variables locales. Elle facilite l’exécution de fonctions, mais aussi la libération de la
mémoire au moment où la fonction se termine.
◦ Le tas contient les données dont la durée de vie n’est pas liée à l’exécution des fonctions,
ou simplement celles dont le type impose qu’elles soient allouées dans le tas, par
exemple parce que leur taille peut évoluer (tableaux Python ...).
3.2 gestion de la pile
Considérons les deux fonctions python f et g.
3
Cours Architecture matérielle NSI
3.3 gestion du tas
Si les valeurs allouées dans le corps d'une fonction ont une durée de vie plus grande que l'appel de
cette fonction, il n'est pas possible de les allouer dans la pile, sans quoi elles disparaîtraient au
retour de la fonction.
Les tableaux t et u, et la paire (t, u) renvoyée par la fonction doivent être allouées dans le
segment du tas qui sert à stocker des valeurs dans une zone mémoire qui n'est pas effacée en sortie
de fonction.
En python, la libération des zones mémoires du tas est faite automatiquement par l’interprète grâce
à un algorithme appelé GC (Glaneur de Cellules en français ou Garbage Collector en anglais).