Résumé mémo fonctionnement d’une machine simple ( C. Timsit)
Mémoire : Elle est composée de plusieurs milliards de circuits mémoires un bit. Ces circuits sont
organisés en agrégats de huit, seize, trente-deux, soixante-quatre circuits mémoires un bit, et parfois
davantage, que l’on appelle des cases mémoires, et qui peuvent donc mémoriser des mots de huit,
seize, trente-deux, soixante-quatre bits, etc.
Le nombre de ces cases définit la taille de la mémoire de l’ordinateur. En général on indique la taille
de la mémoire en indiquant le nombre d’octets c’est-à-dire de mots de huit bits qui peuvent être
mémorisés.
Processeur : Le processeur de son côté n’a qu’un très petit nombre de cases mémoires que l’on
appelle des registres. On peut imaginer, par exemple, qu’il ne contient qu’un seul registre que l’on
appelle A. Les registres peuvent contenir des données, mais aussi des adresses de cases mémoire.
Lorsque l’on parle de processeurs 32 bits ou 64 bits, on fait référence à la taille de ces registres.
Exemple1 :
L’instruction LDA 10 (adressage direct) signifie
qu’il faut aller lire dans la case mémoire 10 :
0) Le compteur s’incrémente de 1
1) On lit l’instruction LDA 10
2) L’information passe au registre
d’instruction
3) Puis dans RADM 10
4) Enfin ça lit la case 10
5) La valeur de la case mémoire 10 est
mise dans l’accumulateur A.
Exemple 2 : Le programme se trouve entre les cases mémoire 0 et 1000 ; je veux mettre 3 dans la
case 2000, 4 dans la case 2001 et je veux faire la somme de ces 2 nombres pour la mettre en 2002.
LDA #3 (adressage immédiat) : on stocke 3 dans l’accumulateur
STA 2000 : stocke la valeur de m’accumulateur à l’adresse mémoire 2000
LDA #4 : on stocke 4 dans l’accumulateur
STA 2001 : stocke la valeur de m’accumulateur à l’adresse mémoire 2001
LDA 2000 : charge dans l’accumulateur la valeur de la casse mémoire 2000
ADD 2001 : additionne la valeur de la case mémoire 2001 à la valeur déjà dans
l’accumulateur
STA 2002 : stocke le résultat précédent dans la case mémoire 2002
remarque : les programmes sont stockés dans la mémoire sous forme de nombres avec les données.
Ainsi on peut exprimer les programmes des exemples ci-dessus en binaire en décidant par exemple
que :
0
LDA im (#)
3
STA Dir
1
LDA Dir
4
ADD im (#)
2
BRA Dir
Les traits verticaux correspondent aux
fils de commandes (de gauche à
droite) :
1) hradm (registre adresse
mémoire)
2) hco (compteur ordinal)
3) co+1 (pour incrémenter le
compteur ordinal)
4) selmux1 (pour le
multiplexeur n°1)
5) hmem (mémoire)
6) hri (registre d’instruction)
7) selmux2 (pour le multiplexeur n°2)
8) haccu (pour l’accumulateur)
9) falu (pour l’unité arithmétique et logique)
A chaque cycle on donne une valeur particulière à ces signaux.
L’ensemble est appelé vecteur de commande ou microinstruction.
Une instruction nécessite plusieurs cycles pour s’exécuter
Le système de séquencement utilise une horloge globale qui permet de passer de
microinstruction à microinstruction.
Application :
1) A l’aide du fichier Excel Machine 0, essayer de suivre les différentes instructions et regarder
ce qui se passe dans chacun des éléments (CO, RADM, Mémoire, ACCU, ALU, RI)
Il faut d’abord lire le fichier Initialisation pour bien démarrer sur la machine 0. !!!
2) Écrire une séquence d’instructions qui multiplie par 5 le nombre x rangé dans la case
mémoire d’adresse 10 et stocke le résultat dans la case mémoire d’adresse 11.
3) Écrire un programme qui lit deux valeurs x et y contenues respectivement dans les cases
mémoires 11 et 12, calcule la différence y x, et range le résultat à l’adresse 13. On suppose
que ces deux valeurs sont des nombres entiers positifs.
Compléter ce programme pour qu’il range la valeur 0 à l’adresse 15 si x est égal à y, ou la
valeur x sinon.
Corrigé :
2)
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !