Architecture de von Neumann

Architecture de von Neumann
Schématisation de l'architecture de von Neumann

L’architecture, dite architecture de von Neumann, est un modèle pour un ordinateur qui utilise une structure de stockage unique pour conserver à la fois les instructions et les données requises ou générées par le calcul. De telles machines sont aussi connues sous le nom d’ordinateurs à programme stocké en mémoire. La séparation entre le stockage et le processeur est implicite dans ce modèle.

Sommaire

Origine

Cette architecture est nommée d’après le mathématicien John von Neumann qui a soumis la première description d’un ordinateur dont le programme est stocké dans sa mémoire. Le terme « architecture de von Neumann » est néanmoins considéré comme injuste vis-à-vis des collaborateurs de John von Neumann, notamment John William Mauchly et John Eckert qui ont utilisé ce concept pendant leur travaux sur l’ENIAC et il est donc maintenant plutôt proscrit.

Architecture

L’architecture de von Neumann décompose l’ordinateur en 4 parties distinctes

  1. L’unité arithmétique et logique (UAL ou ALU en anglais) ou unité de traitement : son rôle est d’effectuer les opérations de base ;
  2. L’unité de contrôle, chargée du séquençage des opérations ;
  3. La mémoire qui contient à la fois les données et le programme qui dira à l’unité de contrôle quels calculs faire sur ces données. La mémoire se divise entre mémoire volatile (programmes et données en cours de fonctionnement) et mémoire permanente (programmes et données de base de la machine).
  4. Les dispositifs d’entrée-sortie, qui permettent de communiquer avec le monde extérieur.

Modification des instructions

En traitant les instructions de la même façon que les données, un ordinateur à programme stocké en mémoire peut facilement modifier les instructions. Une motivation importante pour une telle facilité était le besoin pour un programme d’incrémenter ou modifier le champ adresse des instructions (pour faire des boucles par exemple). Cette motivation est devenue moins importante en même temps que l’utilisation de registres d’index et de l’adressage indirect devenait une caractéristique standard des processeurs.

L’architecture actuelle des ordinateurs rend inutile la modification à faible échelle des instructions du programme — son « code » — car cela rendrait inefficace les techniques de gestion de l’antémémoire et du pipeline dans le processeur. Cette pratique est donc à ce jour dépréciée. Bien sûr, à une plus large échelle, la possibilité de traiter des instructions comme étant des données est ce qui permet l’écriture de compilateurs. C’est aussi une caractéristique qui peut être exploitée par les virus lorsqu’ils ajoutent une copie d’eux-mêmes dans le code de programmes existants. Le problème de la réplication de code non autorisée peut être contourné par l’utilisation d’un système de protection de la mémoire et, en particulier, par le gestionnaire de la mémoire virtuelle.

Voir aussi

Articles connexes