Architecture de von Neumann

Le problème des premiers ordinateurs

Dans les années 1940, les premières machines comme l'ENIAC étaient très difficiles à programmer. Ces ordinateurs présentaient des contraintes majeures :

  • Le programme n'était pas stocké dans la machine
  • Il fallait modifier physiquement les connexions (câbles et interrupteurs)
  • Machines très puissantes mais peu flexibles
  • Changer de programme = reconfigurer toute la machine
L'ENIAC était utilisé pour calculer des trajectoires balistiques pendant la Seconde Guerre mondiale. Il occupait une pièce entière, utilisait des tubes à vide, et changer de programme pouvait prendre plusieurs heures ou plusieurs jours.

Une idée révolutionnaire

John von Neumann a proposé une solution simple mais révolutionnaire :

Stocker le programme dans la mémoire de l'ordinateur, au même endroit que les données.

Cette idée permet de charger différents programmes sans modifier le matériel. Un même ordinateur peut ainsi exécuter :

Navigateur web
Navigation sur internet

Jeu vidéo
Divertissement interactif

Traitement de texte
Édition de documents

Programme Python
Développement logiciel

L'ordinateur devient une machine universelle capable d'exécuter n'importe quel programme.


Le modèle d'architecture de von Neumann

Le modèle de von Neumann repose sur cinq grandes parties qui composent un ordinateur :

1. La mémoire
Contient les données et les instructions du programme

2. Le processeur (CPU)
Exécute les instructions

3. L'unité de contrôle
Lit les instructions et organise leur exécution

4. L'unité arithmétique et logique (ALU)
Effectue les calculs et les comparaisons

5. Les entrées/sorties
Permettent de communiquer avec l'extérieur (clavier, écran, disque, réseau...)

Caractéristique clé : La mémoire contient à la fois le programme et les données dans un même espace de stockage.

Le cycle d'exécution d'un programme

Le processeur fonctionne selon un cycle en trois étapes qui se répète en permanence :

Fetch (Chercher)

Le processeur lit l'instruction en mémoire

Decode (Décoder)

Il interprète l'instruction pour comprendre ce qu'il doit faire

Execute (Exécuter)

Il exécute l'instruction

Exemple concret

Prenons une suite d'instructions très simple :

1  LOAD A      ← Charger la valeur de A
2  ADD B       ← Ajouter la valeur de B
3  STORE C     ← Stocker le résultat dans C

Le processeur va :

  1. Lire la valeur stockée à l'adresse A
  2. Ajouter la valeur stockée à l'adresse B
  3. Stocker le résultat à l'adresse C
C'est exactement ce qui se passe quand vous écrivez c = a + b en Python !

Lien avec le système d'exploitation

Le système d'exploitation (comme Linux, Windows ou macOS) est lui-même un programme qui gère l'exécution d'autres programmes. Exemple avec la commande ls :

Chargement

Le système d'exploitation charge le programme ls en mémoire

Exécution

Le processeur exécute les instructions du programme

Affichage

Le résultat est affiché à l'écran

Le système d'exploitation est un programme spécial qui orchestre l'exécution de tous les autres programmes selon les principes de l'architecture de von Neumann.

Les ordinateurs modernes

Les processeurs actuels sont très complexes : Intel, AMD, Apple M1, ARM...

Le principe général reste le même : tous les ordinateurs modernes reposent toujours sur l'idée du programme stocké en mémoire et exécuté par un processeur.

Que ce soit un smartphone, un ordinateur portable, un serveur ou une console de jeux, tous fonctionnent selon l'architecture de von Neumann.


Avantages de cette architecture

  • Simplicité de conception : Les instructions et les données sont gérées dans le même espace mémoire
  • Flexibilité : Permet l'exécution de programmes variés sans modification matérielle
  • Universalité : Base pour tous les ordinateurs programmables modernes

Limites

Bottleneck de von Neumann : Le transfert entre la mémoire et le processeur peut être lent comparé à la vitesse de traitement du processeur. C'est un goulot d'étranglement qui limite les performances.
Risque de corruption : Une instruction erronée peut écraser des données ou des instructions importantes, car programme et données partagent la même mémoire.

Conclusion

L'idée révolutionnaire de von Neumann de stocker le programme en mémoire avec les données a transformé l'ordinateur en machine universelle.

Cette architecture, conçue dans les années 1940, reste à la base de tous les ordinateurs modernes : smartphones, serveurs, consoles de jeux...

Bien que des variantes (comme l'architecture Harvard) aient été développées pour pallier certaines limites, l'architecture de von Neumann reste le concept fondamental pour comprendre le fonctionnement des ordinateurs.