C14.1 : Architecture von Neumann

Que contient un ordinateur ?

A faire :

Faire la liste des éléments que contient un ordinateur.

Un modèle simplifié : la machine M-10-io

Afin de comprendre de fonctionnement d'un ordinateur, nous allons commencer avec un modèle d'ordinateur minimaliste : la machine M-10-io.

Schéma de principe

Instructions disponibles

Instructions arithmétiques

Ces instructions nécessitent deux opérandes prises en mémoire. Le résultat est placé dans l'accumulateur.

Exemple :

Instructions logiques

Ces instructions nécessitent deux opérandes prises en mémoire.

Exemple :

Instructions de transfert mémoire

Ces instructions nécessite un seul opérande.

Instructions d'entrée/sortie

Ces instruction permettent d'interagir avec l'utilisateur

A faire

Écrire un programme qui :

Un autre modèle un peu moins simplifié : la machine M999

Le modèle précédent ne permet pas de savoir où est stocké le programme, il est par ailleurs assez limité !

Voici un autre modèle, le M999, qui rend davantage compte de ce qui se passe dans un ordinateur.

Généralités

Principe

Le M999 est constitué des éléments suivants :

Mémoires et registres

La mémoire est composée de 100 "emplacements" que l'on appelle mots mémoire, pouvant chacun stocker 3 chiffres (ainsi, les mots mémoire peuvent prendre les valeurs de 000 à 999). Chaque mot mémoire est repéré par son adresse mémoire, codée sur 2 chiffres (de 00 à 99).

Cette mémoire va contenir les données et les instructions.

Le M999 dispose de deux registres généraux notés A et B, et d'un registre accumulateur/résultat noté R. Ces registres peuvent chacun stocker un mot mémoire.

Le M999 dispose aussi d'un registre pointeur d'instruction PC contenant l'adresse mémoire de la prochaine instruction à exécuter.

M999

Unité arithmétique et logique

L'unité arithmétique et logique est en charge d'effectuer les calculs. Les opérandes des instructions sont dans les registres A et B. Le résultat est dans le registre R.

Unité de commande

L'unité de commande pilote l'ordinateur.

Son cycle de fonctionnement comporte 3 étapes :

Jeu d'instructions

c0 c1 c2 Mnémonique Instruction à réaliser
0 addr LDA Copie le mot mémoire d’adresse addr dans le registre A
1 addr LDB Copie le mot mémoire d’adresse addr dans le registre B
2 addr STR Copie le contenu du registre R dans le mot mémoire d'adresse addr
3 - - Opérations arithmétiques et logiques
3 0 0 ADD Ajoute les valeurs des registres A et B, produit le résultat dans R
3 0 1 SUB Soustrait la valeur du registre B à celle du registre A (c'est à dire A - B), produit le résultat dans R
3 . . etc
3 9 9 NOP Ne fait rien
4 rs rd MOV Copie la valeur du registre source rs dans le registre destination rd
5 addr JMP Affecte la valeur addr au registre PC.
6 addr JPP Affecte la valeur addr au registre PC si la valeur du registre R est strictement positive et ne fait rien sinon

Les registres sont désignés par les valeurs suivantes :

valeur registre
0 A
1 B
2 R

Démarrage (boot) et arrêt du programme

La machine démarre avec la valeur nulle comme pointeur d'instruction PC.

La machine stoppe si le pointeur d'instruction vaut 99. Ainsi, la dernière instruction d'un programme est JMP 99 (soit le code 599).

Entrées/sorties

L'emplacement mémoire d'adresse 99 sert d'entrée et de sortie.

Analyse de quelques programmes

Application 1

Soit l'état suivant de la mémoire :

Exemple 1

1) Expliquer pas à pas l'exécution du programme.

2) Que se passe-t-il si on inverse les contenus de @11 et @12.

3) Expliquer en une phrase le rôle de ce programme.

Application 2

Soit l'état suivant de la mémoire :

Exemple 2

1) Expliquer pas à pas l'exécution du programme.

2) Expliquer en une phrase le rôle de ce programme.

Écriture d'un programme

Application 3

1) En utilisant les mnémoniques, écrire un programme qui affiche successivement les nombres de 1 à 10.

2) Coder ce programme sur le M999.

Synthèse : Prendre connaissance