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.
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.
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.
L’architecture de von Neumann décompose l’ordinateur en 4 parties distinctes