logo
Architecture de Von Neumann

L’architecture dite de von Neumann est un modèle d'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.

architecture de von Neumann

Un peu d'histoire.

Cette architecture est appelée ainsi en référence au mathématicien John von Neumann qui a élaboré la première description d’un ordinateur dont le programme est stocké dans sa mémoire (publiée en juin 1945). Le terme « architecture de von Neumann » est néanmoins discuté, car ses collaborateurs, notamment John William Mauchly et John Eckert ont utilisé ce concept pendant leurs travaux sur l’ENIAC, et cette dénomiation est donc maintenant plutôt proscrite.

Architecture

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

modèle de von Neumann

Unité de traitement

L'unité de traitement est composée de circuit électronique qui permettent de réaliser les instructios arithmétiques et logiques de bases, ainsi que les opérations de stockage et de récupération des données.

Elle comporte également un certain nombre de Registres, qui sont des zones de stockages temporaires, d'accès rapide, lui permettant d'effectuer les opérations. Ce sont en quelque sorte des variables élémentaires à disposition du programmeur pour faire ses calculs. Dans l'exemple ci-dessous, le processeur dispose des registres R0,R1,R2,R3.

UAL et registre

Programme et instructions machines

Dans la mémoire d'un ordinateur on peut stocker des données (Entiers, flottants, booléens, caractères,...) sous forme binaire. Par exemple 00100110 correspond au nombre entier 38. Mais on peut également y stocker des instructions à destination de l'unité de traitement. Ce même code binaire 00100110 pourrait très bien correspondre au code d'une instruction machine, par exemple "Stopper le programme".

C'est le rôle du système d'exploitation (windows,linux,...) et du programmeur de faire en sorte de distinguer en mémoire ce qui correspond à des instructions ou des donnéees.

Une instruction machine se présente de la façon suivante :


instruction machine

Chaque instruction peut occuper 1 ou plusieurs mots dans la mémoire d'un ordinateur. On rappel qu'un mot correspond à l'unité de base pouvant être traitée par le processeur. Avec un proceseur 8 bits la taille du mot correspond à 8 bits soit 1 octet. Avec un processeur 64 bits la taille du mots correspond à 64 bits soit 4 octets.

Au début de l'informatique les programmeurs devait coder leur programme directement en binaire (langage machine). Par exemple, le code :

[01001100][00100101]

Ici le premier octet [01001100] correspond au code de l'opération à effectuer (opcode) , à savoir ajouter la valeur suivante soit [00100101] (37 en décimal) au registre R1.

La programmation en binaire étant loin d'être évidente pour un humain, on a inventé le langage Assembleur qui permet d'écrire les instructions de manière plus compréhensible. Dans notre exemple le code [01001100][00100101] est remplacé par :

ADD R1,37 

Ce qui vous l'avouerez est tout de même déjà beaucoup plus lisible !

Voici un exemple de programme Assembleur

INP R0,2
INP R1,2
ADD R2,R1,R0
OUT R2,4
HALT

Il faut donc un moyen de traduire un tel programme en codes machines binaires qui est le seul "langage" compris par le processeur. Ce travail de traduction est réalisé par les compilateurs/interpréteurs.

A réaliser:

  1. Retrouver sur la carte mère à disposition le processeur.
  2. Retrouver sur la carte mère à disposition le bus de données.

A consulter :

  1. Informatique Lycée
  2. Structure processeur
  3. Un processeur vu au microscope
  4. Une vidéo d'un processeur en fonctionnement.
  5. Vidéo fabrication processeur (1)
  6. Vidéo fabrication processeur (2)

CCBYSA"

Auteurs : Ghachem Amira (Modifié C. Béasse - Février 2019)