Dans cet article, nous allons analyser en détail Architecture de von Neumann, un sujet qui a généré un grand débat dans la société contemporaine. Architecture de von Neumann est un sujet d'une grande importance, car il touche un large spectre de la population et a des répercussions sur divers aspects de la vie quotidienne. Tout au long de cet article, nous explorerons différentes perspectives sur Architecture de von Neumann, dans le but de mettre en lumière ses implications et de générer une réflexion approfondie. De son origine à ses solutions possibles, en passant par ses conséquences à court et long terme, Architecture de von Neumann est un sujet qui mérite d'être abordé avec sérieux et rigueur, c'est pourquoi il est primordial d'approfondir son analyse.
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 demandées ou produites par le calcul. De telles machines sont aussi connues sous le nom d’ordinateur à programme enregistré. La séparation entre le stockage et le processeur est implicite dans ce modèle.
Cette architecture est appelée ainsi en référence au mathématicien John von Neumann, qui a élaboré en juin 1945 dans le cadre du projet EDVAC[1] la première description d’un ordinateur dont le programme est stocké dans sa mémoire.
Alan Turing, John William Mauchly et John Eckert (pendant leurs travaux sur l’ENIAC) ont également utilisé ce concept ou une idée proche, et ce indépendamment de von Neumann.
Herman Goldstine (un collègue de John von Neumann) fit circuler une description inachevée, intitulée « Première ébauche d'un rapport sur EDVAC », basée sur les travaux d'Eckert et Mauchly, sous le seul nom de von Neumann.
Le document a été lu par des dizaines de collègues de von Neumann en Amérique et en Europe, et a inspiré plusieurs machines en construction.
L’architecture de von Neumann décompose l’ordinateur en 4 parties distinctes :
En traitant les instructions de la même façon que les données, un ordinateur qui a un programme stocké en mémoire peut facilement modifier les instructions. Une raison importante ayant induit une telle possibilité était le besoin pour un programme d’incrémenter ou modifier le champ adresse des instructions (pour faire des boucles par exemple). Cette raison est devenue moins importante avec l'apparition de l’utilisation de registres d’index et de l’adressage indirect en tant que 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 inefficaces les techniques de gestion de l’antémémoire et du pipeline dans le processeur. Cette pratique est donc à ce jour obsolète. Bien sûr, à une plus grande échelle, la possibilité de traiter des instructions de la même manière que des données est ce qui permet l’écriture de compilateurs. C’est aussi une caractéristique exploitée par les virus lorsqu’ils ajoutent une copie de leur propre code dans un programme existant. Le problème de la copie de code non autorisée peut être évité par l’utilisation d’un système de protection de la mémoire et, en particulier, par le gestionnaire de la mémoire virtuelle.