Aller au contenu principal
Bethemesh
RéférenceHistoire de l’informatique

L'architecture de von Neumann : le programme placé en mémoire

Comprenez le modèle de von Neumann, ses unités de calcul, de contrôle, de mémoire et d'entrée-sortie, ainsi que le principe du programme enregistré.

Publié le 31 juillet 2026Mis à jour le 7 août 2026Lecture : 12 minPar Équipe Bethemesh
Débutant
Schéma éditorial de l'architecture de von Neumann reliant processeur, mémoire et entrées-sorties
Afficher le sommaire
  1. Avant le programme enregistré
  2. Le projet EDVAC et le rapport de 1945
  3. Une invention qui ne repose pas sur un seul homme
  4. Les cinq grandes fonctions d’un ordinateur
  5. L’idée décisive : instructions et données en mémoire
  6. Comment le processeur exécute-t-il un programme ?
  7. 1. Rechercher l’instruction
  8. 2. Décoder l’instruction
  9. 3. Exécuter l’opération
  10. 4. Enregistrer le résultat
  11. Les registres : une mémoire au plus près du calcul
  12. Le goulot d’étranglement de von Neumann
  13. Les caches pour rapprocher les données du processeur
  14. Architecture von Neumann et architecture Harvard
  15. Les processeurs modernes ne travaillent plus instruction après instruction
  16. Le programme peut lui-même devenir une donnée
  17. Du matériel spécialisé à la machine universelle
  18. Pourquoi l’architecture de von Neumann reste-t-elle importante ?
  19. À retenir
  20. Questions fréquentes
  21. John von Neumann a-t-il inventé seul cette architecture ?
  22. Quelle est l’idée principale de l’architecture de von Neumann ?
  23. Quelle est la différence entre von Neumann et Harvard ?
  24. Qu’est-ce que le goulot d’étranglement de von Neumann ?
  25. Les ordinateurs actuels utilisent-ils encore cette architecture ?

L’architecture de von Neumann désigne l’un des modèles fondamentaux de l’informatique moderne. Formalisée au milieu des années 1940 dans le contexte des premiers ordinateurs électroniques, elle repose sur une idée aujourd’hui presque évidente : les instructions d’un programme peuvent être stockées en mémoire, au même titre que les données qu’elles manipulent.

Ce principe du programme enregistré a profondément changé la conception des ordinateurs. Une même machine pouvait désormais effectuer des tâches très différentes simplement en chargeant un nouveau programme, sans qu’il soit nécessaire de modifier physiquement son câblage.

Plus de quatre-vingts ans après les premiers travaux sur l’EDVAC, les processeurs sont devenus infiniment plus complexes. Pourtant, les notions de mémoire, d’unité de calcul, d’unité de contrôle et d’entrées-sorties restent au cœur de leur fonctionnement.

Avant le programme enregistré

Les premières machines de calcul automatiques n’étaient pas nécessairement programmées comme nos ordinateurs actuels.

Sur certaines machines, modifier le calcul à effectuer impliquait de changer des connexions, de déplacer des câbles, de régler des commutateurs ou de préparer de nouveaux supports physiques. L’ENIAC, mis au point aux États-Unis pendant la Seconde Guerre mondiale, en constitue un exemple célèbre : sa configuration initiale nécessitait un important travail manuel.

Ces machines pouvaient effectuer des calculs extrêmement rapidement pour leur époque, mais passer d’un problème à un autre restait contraignant.

Une question devient alors essentielle :

Et si les instructions indiquant à la machine ce qu’elle doit faire étaient elles-mêmes enregistrées dans sa mémoire ?

Le programme ne serait plus uniquement représenté par la configuration physique de la machine. Il deviendrait une information que l’ordinateur pourrait charger et lire.

Cette idée constitue le cœur du concept de programme enregistré.

Le projet EDVAC et le rapport de 1945

En 1945, alors que l’ENIAC n’est pas encore officiellement présenté au public, ses concepteurs travaillent déjà à son successeur : l’EDVAC, pour Electronic Discrete Variable Automatic Computer.

John von Neumann rejoint les discussions autour du projet et rédige un document devenu célèbre, le First Draft of a Report on the EDVAC.

Le rapport décrit une machine électronique organisée autour de plusieurs grandes fonctions : calcul, contrôle, mémoire et communication avec l’extérieur. Il expose surtout le principe selon lequel les instructions peuvent être représentées sous une forme numérique et conservées en mémoire.

Le document circule largement et contribue fortement à diffuser cette nouvelle manière de concevoir un ordinateur.

C’est notamment pour cette raison que l’expression « architecture de von Neumann » s’imposera progressivement.

Cette appellation mérite cependant une précision historique importante.

Une invention qui ne repose pas sur un seul homme

Présenter John von Neumann comme l’unique inventeur de cette architecture serait trompeur.

Les réflexions autour du programme enregistré émergent dans un environnement scientifique beaucoup plus large. Les ingénieurs J. Presper Eckert et John Mauchly, qui travaillent sur l’ENIAC puis l’EDVAC, participent directement à la conception de ces nouvelles machines.

D’autres chercheurs contribuent également à l’évolution des idées concernant les calculateurs électroniques et programmables.

Von Neumann joue néanmoins un rôle déterminant dans leur formalisation et surtout dans leur diffusion. Le First Draft porte son nom et circule largement auprès des chercheurs travaillant sur les futurs ordinateurs.

Le terme historique est donc resté.

Parler aujourd’hui d’architecture de von Neumann reste parfaitement légitime, à condition de garder à l’esprit que la naissance de l’ordinateur moderne est le résultat d’un travail collectif.

Les cinq grandes fonctions d’un ordinateur

Dans une représentation simplifiée, une machine de type von Neumann comprend plusieurs éléments essentiels :

  • une unité arithmétique et logique ;
  • une unité de contrôle ;
  • une mémoire ;
  • des dispositifs d’entrée ;
  • des dispositifs de sortie.

L’unité arithmétique et logique, souvent appelée UAL ou ALU en anglais, effectue les opérations demandées : additions, soustractions, comparaisons ou opérations logiques.

L’unité de contrôle orchestre le fonctionnement de la machine. Elle détermine quelle instruction doit être exécutée et commande les autres composants.

Dans les ordinateurs modernes, ces deux fonctions font partie du processeur, ou CPU.

La mémoire conserve les informations dont la machine a besoin. Elle peut contenir aussi bien les données à traiter que les instructions du programme.

Enfin, les entrées et sorties permettent à l’ordinateur de communiquer avec le monde extérieur : clavier, écran, stockage, réseau, capteurs ou de nombreux autres périphériques.

Cette représentation est volontairement simplifiée, mais elle fournit encore aujourd’hui une excellente grille de lecture pour comprendre un ordinateur.

L’idée décisive : instructions et données en mémoire

La caractéristique la plus célèbre du modèle réside dans la manière dont la mémoire est utilisée.

Dans une architecture de von Neumann classique, les données et les instructions peuvent être stockées dans la même mémoire.

Prenons un programme extrêmement simple chargé d’additionner deux nombres.

La mémoire peut contenir :

  • les deux nombres à additionner ;
  • l’instruction demandant leur addition ;
  • l’instruction indiquant où enregistrer le résultat ;
  • puis le résultat lui-même.

Pour la machine, une instruction est donc elle aussi représentée par des informations numériques.

Cette idée ouvre des possibilités considérables.

Changer de programme ne nécessite plus nécessairement de reconstruire ou de recâbler l’ordinateur. Il suffit de placer de nouvelles instructions dans sa mémoire.

Une même machine physique devient ainsi capable d’exécuter un traitement comptable, un calcul scientifique, un jeu ou un éditeur de texte simplement en utilisant des programmes différents.

C’est l’un des principes qui rendent possible l’ordinateur généraliste.

Comment le processeur exécute-t-il un programme ?

Le fonctionnement peut être représenté par un cycle souvent appelé fetch-decode-execute, ou recherche-décodage-exécution.

Imaginons qu’un programme soit déjà chargé en mémoire.

1. Rechercher l’instruction

Le processeur doit d’abord savoir quelle instruction exécuter.

Un registre particulier, généralement appelé compteur ordinal ou program counter, contient l’adresse de la prochaine instruction.

Le processeur va chercher cette instruction en mémoire.

2. Décoder l’instruction

Une fois chargée, l’instruction doit être interprétée.

L’unité de contrôle détermine l’opération demandée : effectuer une addition, comparer deux valeurs, déplacer une donnée, lire une zone de mémoire ou modifier l’ordre d’exécution du programme.

3. Exécuter l’opération

L’opération est ensuite réalisée.

Si un calcul est nécessaire, l’unité arithmétique et logique peut intervenir. Si l’instruction demande une donnée, le processeur peut la récupérer en mémoire.

4. Enregistrer le résultat

Le résultat peut être placé dans un registre, écrit en mémoire ou transmis à un autre composant.

Le processeur passe ensuite à l’instruction suivante.

À plusieurs milliards de cycles par seconde sur certains processeurs actuels, cette succession d’opérations devient invisible pour l’utilisateur.

Les registres : une mémoire au plus près du calcul

La mémoire principale n’est pas le seul endroit où le processeur conserve des informations.

Il possède également de petites zones de stockage extrêmement rapides appelées registres.

Ils peuvent contenir temporairement :

  • des valeurs utilisées dans un calcul ;
  • des adresses mémoire ;
  • des résultats intermédiaires ;
  • l’instruction en cours ;
  • l’adresse de la prochaine instruction.

Leur capacité est minuscule comparée à celle de la mémoire vive, mais leur proximité avec les unités de calcul les rend beaucoup plus rapides.

Cette différence illustre un problème qui devient de plus en plus important à mesure que les processeurs accélèrent : le calcul peut devenir plus rapide que l’accès aux données dont il a besoin.

Le goulot d’étranglement de von Neumann

Dans le modèle classique, instructions et données partagent la mémoire et les voies permettant de communiquer avec le processeur.

Le processeur doit donc continuellement récupérer de nouvelles instructions et les données nécessaires à leur exécution, puis éventuellement renvoyer les résultats vers la mémoire.

Même si le processeur est extrêmement rapide, ses performances peuvent être limitées par la vitesse à laquelle les informations circulent entre la mémoire et les unités de calcul.

Ce phénomène est connu sous le nom de goulot d’étranglement de von Neumann.

L’expression sera notamment popularisée par l’informaticien John Backus dans les années 1970.

Le problème n’a pas disparu avec les ordinateurs modernes. L’écart de performances entre processeurs et mémoire a longtemps constitué l’un des principaux défis de l’architecture informatique.

Les caches pour rapprocher les données du processeur

L’une des réponses à ce problème consiste à ajouter plusieurs niveaux de mémoire cache.

Un cache est beaucoup plus petit que la mémoire vive, mais également beaucoup plus rapide.

Le processeur tente d’y conserver les instructions et données qu’il estime susceptibles d’être utilisées prochainement.

Les processeurs modernes disposent généralement de plusieurs niveaux :

  • cache L1, très petit et extrêmement rapide ;
  • cache L2, plus important ;
  • cache L3, encore plus grand et souvent partagé entre plusieurs cœurs.

L’objectif est simple : éviter autant que possible d’attendre la mémoire principale.

Cette hiérarchie montre à quel point les machines modernes se sont éloignées du schéma élémentaire des années 1940 tout en essayant de résoudre une difficulté directement liée à celui-ci.

Architecture von Neumann et architecture Harvard

Une autre organisation importante est l’architecture Harvard.

Dans une architecture Harvard stricte, les instructions et les données utilisent des mémoires distinctes et peuvent disposer de chemins de communication séparés.

Cela permet notamment de récupérer simultanément une instruction et une donnée.

La différence théorique peut donc être résumée ainsi :

von Neumann : instructions et données partagent un espace mémoire.

Harvard : instructions et données sont séparées.

Dans la pratique, les ordinateurs modernes brouillent largement cette distinction.

Un processeur peut présenter au programmeur un espace mémoire unifié correspondant au modèle de von Neumann tout en possédant, en interne, des caches séparés pour les instructions et les données.

On parle parfois d’architecture Harvard modifiée.

De nombreux microcontrôleurs et processeurs spécialisés utilisent également différentes variantes de cette organisation.

Il serait donc incorrect d’imaginer que chaque ordinateur actuel correspond exactement à l’un ou l’autre des deux schémas.

Les processeurs modernes ne travaillent plus instruction après instruction

Le cycle recherche-décodage-exécution constitue un excellent modèle pédagogique, mais un processeur moderne est beaucoup plus sophistiqué.

Pour améliorer les performances, il peut commencer à traiter une nouvelle instruction avant que la précédente soit complètement terminée. C’est le principe du pipeline d’instructions.

Il peut également disposer de plusieurs unités capables d’effectuer différentes opérations simultanément.

Certains processeurs réorganisent même l’ordre d’exécution des instructions lorsque cela permet d’utiliser plus efficacement leurs ressources, tout en veillant à produire le résultat attendu par le programme.

L’exécution spéculative permet quant à elle d’anticiper le chemin qu’un programme risque d’emprunter et de commencer certains calculs avant même de savoir s’ils seront nécessaires.

Enfin, les processeurs actuels possèdent souvent plusieurs cœurs, chacun capable d’exécuter ses propres flux d’instructions.

Un ordinateur moderne est donc très loin du diagramme élémentaire processeur-mémoire-entrées-sorties.

Pourtant, au niveau logiciel, nous retrouvons toujours une idée fondamentale : des instructions enregistrées dirigent une machine généraliste qui manipule des données.

Le programme peut lui-même devenir une donnée

Le principe du programme enregistré possède une conséquence particulièrement importante : puisqu’un programme est représenté en mémoire sous forme numérique, un programme peut manipuler un autre programme.

Un compilateur peut par exemple lire du code source et produire un programme exécutable.

Un système d’exploitation peut charger un programme depuis un stockage vers la mémoire.

Un éditeur peut modifier un fichier contenant du code.

Un programme peut même générer automatiquement de nouvelles instructions.

La frontière entre « programme » et « donnée » dépend donc en partie de la manière dont l’information est interprétée.

Cette caractéristique est devenue essentielle au développement des systèmes d’exploitation, des compilateurs, des langages de programmation et, plus largement, de l’industrie du logiciel.

Du matériel spécialisé à la machine universelle

Le programme enregistré contribue à une transformation majeure.

Au lieu de construire une machine différente pour chaque problème, il devient possible de construire une machine généraliste et de modifier son comportement grâce au logiciel.

Cette idée entretient un lien conceptuel fort avec les travaux d’Alan Turing.

En 1936, plusieurs années avant l’EDVAC, Turing décrit une machine abstraite capable d’exécuter des opérations définies symboliquement. Il montre notamment qu’une machine universelle peut simuler le fonctionnement de nombreuses autres machines dès lors qu’elle reçoit leur description.

La machine de Turing est un modèle mathématique, tandis que l’architecture de von Neumann concerne l’organisation pratique d’ordinateurs électroniques.

Les deux concepts ne doivent donc pas être confondus.

Ils participent néanmoins à la même révolution intellectuelle : une machine n’a pas besoin d’être construite pour une seule tâche ; son comportement peut être déterminé par l’information qu’on lui fournit.

Pourquoi l’architecture de von Neumann reste-t-elle importante ?

Les ordinateurs actuels possèdent des GPU, plusieurs cœurs, des caches complexes, des contrôleurs spécialisés, des accélérateurs d’intelligence artificielle et de nombreux mécanismes inexistants dans les années 1940.

Dire qu’un ordinateur moderne est simplement « une machine de von Neumann » serait donc très réducteur.

Mais le modèle reste extrêmement utile.

Il permet de comprendre pourquoi un ordinateur possède une mémoire et un processeur, comment un programme est exécuté, pourquoi les données doivent circuler entre différents composants et pourquoi la vitesse de la mémoire influence les performances.

Il constitue également une étape majeure dans l’histoire de l’informatique : celle où le programme devient une information stockable et modifiable plutôt qu’une simple configuration matérielle.

Cette idée paraît tellement naturelle aujourd’hui qu’il est facile d’oublier à quel point elle était déterminante.

Lorsque nous installons une application, lançons un jeu, chargeons une page Web ou exécutons quelques lignes de code, nous utilisons toujours cette propriété fondamentale : une même machine peut devenir autre chose simplement parce qu’on lui donne de nouvelles instructions.

À retenir

L’architecture de von Neumann ne correspond pas au plan exact des ordinateurs modernes. C’est avant tout un modèle historique et conceptuel.

Ses principes essentiels restent cependant fondamentaux :

  • une machine possède des unités de calcul et de contrôle ;
  • elle utilise une mémoire pour conserver des informations ;
  • les instructions d’un programme peuvent être enregistrées en mémoire ;
  • ces instructions dirigent les opérations réalisées sur les données ;
  • une même machine peut ainsi exécuter des programmes très différents.

Son influence dépasse donc largement le schéma classique représentant un processeur relié à une mémoire.

Le programme enregistré a contribué à faire de l’ordinateur une machine polyvalente définie autant par son logiciel que par son matériel.

Questions fréquentes

John von Neumann a-t-il inventé seul cette architecture ?

Non. Von Neumann a joué un rôle majeur dans sa formalisation et sa diffusion, notamment grâce au First Draft of a Report on the EDVAC de 1945. Mais les concepts associés à l’EDVAC résultent d’un travail collectif auquel participèrent notamment J. Presper Eckert et John Mauchly.

Quelle est l’idée principale de l’architecture de von Neumann ?

Le principe essentiel est celui du programme enregistré : les instructions peuvent être représentées numériquement et conservées en mémoire, ce qui permet à une même machine d’exécuter différents programmes.

Quelle est la différence entre von Neumann et Harvard ?

Dans le modèle de von Neumann classique, instructions et données partagent la mémoire. Dans une architecture Harvard, elles disposent de mémoires ou de chemins distincts. De nombreux processeurs modernes utilisent une organisation hybride.

Qu’est-ce que le goulot d’étranglement de von Neumann ?

Il désigne la limitation provoquée par les échanges entre le processeur et la mémoire. Un processeur très rapide peut devoir attendre les instructions ou les données nécessaires à ses calculs.

Les ordinateurs actuels utilisent-ils encore cette architecture ?

Ils en conservent plusieurs principes fondamentaux, notamment celui du programme enregistré, mais utilisent de nombreuses optimisations : caches, pipelines, exécution parallèle, plusieurs cœurs et parfois séparation interne des instructions et des données.

Sources et références

  1. 1.First Draft of a Report on the EDVAC
  2. 2.Stanford Encyclopedia --- Modern History of Computing
  3. 3.IEEE Computer Society --- John von Neumann

Collection

Les pionniers de l’informatique

  1. 01Ada Lovelace : la visionnaire qui imagina le programme informatique
  2. 02Charles Babbage : l'inventeur qui imagina l'ordinateur mécanique
  3. 03La machine à différences : automatiser les calculs avant l'ordinateur
  4. 04Les cartes perforées : du métier Jacquard aux premiers ordinateurs
  5. 05La machine analytique : l’ordinateur mécanique imaginé par Babbage
  6. 06Alan Turing : le mathématicien qui donna une forme au calcul
  7. 07Claude Shannon : l'ingénieur qui transforma l'information en science
  8. 08John von Neumann : le savant qui relia mathématiques et ordinateur
  9. 09La machine de Turing : le modèle abstrait qui définit le calcul
  10. 10L'architecture de von Neumann : le programme placé en mémoire
  11. 11La théorie de l'information : mesurer, compresser et transmettre les messages

Cet article vous a-t-il été utile ?