Vous êtes sur la page 1sur 4

Cours Architecture matérielle NSI

I - Le Modèle de Von Neuman


Issu des travaux du mathématicien et physicien John Von Neuman, ce modèle est caractérisé par le
fait que les programmes et les données sont stockés au même endroit : la mémoire (RAM) de
l’ordinateur.

Le modèle comporte 4 types de composants :


• L’unité arithmétique et logique (ALU en anglais) effectue les opérations sur les bits. Elle
est notamment composée de mémoires internes appelées registres, et de circuits
électroniques permettant d’effectuer les opérations arithmétiques (additions, soustractions
…), les opérations logiques (compléments à un, etc.), les comparaisons (égalité, inférieur,
supérieur…), des opérations sur les bits (décalages …) ou des opérations de déplacement
mémoire.
• L’unité de contrôle se charge de récupérer les instructions et les données en mémoire. Elle
contient des mémoires, aussi appelées registres, et un programme, appelé micro-programme,
qui contrôle presque tous les mouvements de données entre la mémoire, l’ALU et les
périphériques d’entrée-sortie.
Ces deux unités sont appelées processeur (CPU). Lorsqu’elles sont rassemblées dans un même
circuit, on parle de microprocesseur.
• La mémoire est reliée à l’unité centrale via un médium de communication appelé bus. Les
périphériques d’entrée-sortie peuvent aussi lire et écrire directement dans la mémoire à
travers ce bus, sans passer par l’unité centrale de traitement (ou CPU). Cet accès direct est
réalisé par un circuit électronique spécialisé, le contrôleur DMA (Direct Memory Access).
• Les dispositifs d’entrée-sortie sont connectés à l’ordinateur via des circuits électroniques
appelés ports d’entrée-sortie. L’accès à ces ports se fait au travers d’emplacements
mémoires spécifiques. Le CPU peut soit lire périodiquement ces emplacements ou être
prévenu d’un changement à travers un mécanisme appelé interruption.
Ces dispositifs peuvent être :
◦ des entrées : dispositifs de saisie (clavier, souris, manettes…), des lecteurs de code barre,
scanners, appareils photo, webcams.
◦ des sorties : écrans, vidéo projecteurs, imprimantes, haut-parleurs
◦ à la fois des entrées et des sorties : lecteurs de disques (CD, blue Ray), disques durs,
clefs USB ou cartes SD, cartes réseaux etc...

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.

II – Composants Carte mère


2.1 Carte mère
La carte mère est le circuit imprimé qui supporte la
plupart des composants et connecteurs nécessaires au
fonctionnement d’un ordinateur. On retrouve
notamment:
• Un ou plusieurs Socket, emplacement où l’on
branche un processeur (CPU)
• des slots Mémoire pour ajouter des barettes de
mémoire vive (RAM)
• Des ports SATA, pour les disques durs ou SSD
• des ports PCI pour les cartes d’extension (cartes
graphiques, cartes réseau etc...)

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.

Mémoire Temps d’accès Débit capacité


registres 1 ns ≈Kio
mémoire cache 2-3 ns ≈Mio
mémoire vive (RAM) 5-60 ns 1-20 Gio/s ≈Gio
disques durs 3-20 ms 10-320 Mio/s ≈Tio

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.

Exercice : Remplir la pile d’appel aux 3 instants (A), (B) et (C) :


• La pile (A) contient l’environnement lors de l’appel à f(1, 5).
Les 1ères cases contiennent une sauvegarde des registres du
processeur (reg), un espace pour la valeur de retour de la
fonction (ret), les valeurs de x(1) et y(5) ainsi qu’un espace
pour les variables locales z et u, qui ne contiennent aucune
valeur à cet instant.
• La pile (B) représente l’environnement après l’appel g(x-1, y*2) et le calcul de la valeur
de retour.
• La pile (C) montre l’environnement après calcul de la valeur de retour de f.

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.

Exercice : Compléter les pointillés en vous Segment de la pile Segment du tas


aidant si besoin de pythontutor pour
visualiser la configuration de la mémoire ci-
contre après l'appel allouer(2,3) :
• les variables locales x et y sont
allouées dans le segment ….
• les variables locales t et u sont
alloués dans le segment …
et contiennent l’adresse mémoire des
tableaux qui sont eux alloués dans le
segment ...
• Finalement, la fonction renvoie le
contenu de la variable de retour ret,
qui est une adresse mémoire pointant
vers un couple alloué dans le segment ...

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).

Vous aimerez peut-être aussi