Architecture de Von Neumann
Unités fonctionnelles
Architecture de Von Neumann
L’architecture de Von Neumann est un
modèle structurel d’ordinateur dans lequel
une unité de stockage (mémoire) unique
sert à conserver à la fois les instructions et
les données demandées ou produites par le
calcul. Les ordinateurs actuels sont tous
basés sur des versions améliorées de cette
architecture.
L’architecture de Von Neumann décompose
l’ordinateur en 4 parties distinctes :
● l’unité arithmétique et logique (UAL ou ALU en
anglais) ou unité de traitement : son rôle est
d’effectuer les opérations de base;
● l’unité de contrôle, chargée du «séquençage»
des opérations: elle joue un rôle de
coordonnateur;
● la mémoire qui contient à la fois les données
et le programme qui indiquera à l’unité de
contrôle quels sont les calculs à faire sur ces
données. La mémoire se divise entre mémoire
volatile (programmes et données en cours de
fonctionnement) et mémoire permanente
(programmes et données de base de la
machine) ;
● les dispositifs d’entrée-sortie, qui permettent
de communiquer avec le monde extérieur.
Architecture de Von Neumann
Mémoire
Elle est composée de suite de mots
mémoire (suite de bits de taille fixe).
Chaque mot mémoire est identifié par
son adresse (code biniare).
Mémoire
Exemple:
RAM de deux
octets chacun
avec des adresses
de 0 à 15 codées
sur 4 bits.
Registres
Pour assurer leur fonctionnement, l'unité de
traitement (partie opérative) et l'unité de
commande (Partie contrôle), utilise des
mémoires très rapides appelés registres.
En règle général, dans le contexte d'un
processeur particulier, les registres sont
associés à des noms courts indiquant leur
rôle.
Registres
Unité de commande
Elle est composée de deux registres:
Le compteur ordinal (CO): stocke l'adresse de
l'instruction à exécuter, sa taille est
identique à celle d'une adresse mémoire.
Le registre d'instruction (RI) stocke
l'instruction en cours d'execution, sa taille
est égale à celle d'un mot mémoire.
Unité de commande
CO
RI
Codage de l'instruction en cours par RI:
Exercice
On suppose que les codes des opérations de base sont: 0000
pour l'addition, 0001 pour la multiplication, 0010 pour la
soustraction et 0011 pour la division.
1- Expliquer le rôle de chacune des instructions codées comme
suit:
0001 1000 0011 1001
0000 1100 0101 1000
0011 1001 0101 0010
2- Donner le code de l'instruction effectuant la division entre le
mot mémoire d'adresse 9 avec celui d'adresse 2 et stocke le
résultat dans le mot d'adresse 5.
Unité de traitement
Elle exécute des opérations de base et composée de:
- 3 registres:
- deux servant à stocker les données (donnée 1 et donnée 2)
- 1 registre pour stocker le résultat de l'opératio effectuée.
- Unité arithmétique et logique(UAL): lorsqu'on lui
fournit le code d'une opération, elle prend les
contenus des deux premiers registres (stockant
donnée1 et donnée 2) et remplit le troisieme par le
résultat.
Unité de traitement
Fonctionnement d’un Microprocesseur
M
• Extrait une instruction de la mémoire
• Analyse l’instruction
• Recherche dans la mémoire les données concernées
• Assure le chargement des données si nécessaire
• Déclenche l’opération adéquate sur l’UAL
• Range le résultat dans la mémoire
• Passe à l’instruction suivante
Exercice
Expliquer (via des schémas) les différentes
phases permettant d'executer le programme
suivant:
In A=2 ;
Int B=4 ;
Int C= 17;
Int D,E ;
D=A*B;
E=C+D ;