C14.1 : Architecture von Neumann

Que contient un ordinateur ?

A faire

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

Prendre connaissance

Prendre connaissance de Tout sur l'architecture : La carte mère d'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

Télécharger la version numérique (format docx) : 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.

Afficher la correction

1)

Addr PC Contenu Mnémonique Explication R A B E/S @99
@00 399 NOP Ne fait rien
@01 011 LDA @11 Copie le contenu de @11 dans A 123
@02 112 LDB @12 Copie le contenu de @12 dans B 123 042
@03 301 SUB Place le résultat de A - B dans R 81 123 042
@04 608 JPP @08 Ici R est > 0 => le PC va en @08 81 123 042
@08 412 MOV 1 2 Copie B dans R 042 123 042
@09 299 STR @99 Copie R dans @99 (rappel : @99 est la sortie, écran ou autre 042 123 042 042
@10 599 JMP @99 Le PC va en @99 => Fin du programme 042 123 042 042

On observe que le contenu de @12 est envoyé ver la sortie @99.

2)

Dans ce cas, c'est le contenu de @11 qui est envoyé vers la sortie @99

3)

Ce programme envoie vers la sortie @99 la plus petite valeur entre celle qui est en @11 et celle qui est en @12

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 de :

Tout sur l'architecture : Architecture von Newman

Tout sur l'architecture : Du transistor au processeur

Tout sur l'architecture : Les mémoires d'une machine informatique

Pour aller plus loin

Vidéo de Underscore_ "On a reçu l'étudiant qui a frabriqué son processeur :

https://www.youtube.com/watch?v=KsR7sZztx4U