Rappels de cours

publicité
AMSI
2001/2002
Joëlle Delacroix
EXERCICES DIRIGES 5, 6 et 7
MODES D'ADRESSAGES
EXECUTION DES INSTRUCTIONS MACHINES
Rappels de cours
A. Notion d'instructions, modes d'adressages
Le langage de programmation d'une machine est un ensemble d'instructions permettant de
spécifier à la machines les opérations à exécuter pour résoudre un problème donné. Il existe
différents niveaux de langages.
Au niveau de la machine physique se trouve le langage dit langage machine, seul exécutable par
la machine. Les instructions du langage machine sont des mots binaires.
Le schéma ci-dessous résume les différents niveaux de langages existants sur une machine :
-
le langage de haut niveau (C, ada, Cobol, etc…) est indépendant de la machine
physique et ne peut pas être directement exécuté par celle-ci.
le langage d'assemblage est dépendant de la machine. Il est équivalent au langage
machine à la différence près que les chaines binaires de l'instruction machine sont
remplacées par des chaines mnémoniques.
le langage machine est composé des instructions directement exécutées par le
processeur.
Indépendant
matériel
Langage haut niveau
I := 1;
J := 3;
I = J + I;
COMPILATEUR
Langage assemblage
LOAD Im R0 1
LOAD Im R1 3
ADD Rg2 R0 R1
Dépendant
matériel
ASSEMBLEUR
Langage machine
1
00000000000011110000000000000001
00000000000010100000000000000011
0010111100000001
AMSI
2001/2002
Joëlle Delacroix
On se réfère à la documentation MAP32 pour étudier le format des instructions et les différents
types d'instructions.
B. Principe de l'exécution d'une instruction
Bus externe
(commande, données, adresse)
RAD
RDO
CO
RI
Décodeur
Mémoire
Processeur
UAL
H
Séquenceur Unité d ’exécution
Unité de commande
Le traitement d'une instruction par le processeur se décompose en deux étapes :
- le cycle de recherche : recherche de l'instruction pointée par le CO
- le cycle d'exécution : recherche des opérandes en mémoire centrale et exécution
de l'instruction
A.1. Le cycle de recherche
- lecture de l'instruction suivante (phase de fetch = f(architecture du processeur)) :
transfert de CO dans RAD, lecture, transfert de RDO dans RI, incrémentation de
CO
A.2. Le cycle d'exécution
- recherche des opérandes en mémoire centrale (phase de décodage = f(mode
d'adressage))
- exécution de l'instruction (phase d'exécution = f(code opération)
Les circuits de commande et de séquencement sont pilotés par une horloge à quartz. Le quartz est
externe au processeur; en revanche, les circuits d'horloge peuvent être internes ou externes au
processeur.
2
AMSI
2001/2002
Joëlle Delacroix
Registres
UAL
Registres
UAL
Séquenceur
Horloge
Décodeur
Horloge
Décodeur
Séquenceur
Quartz
Quartz
Une horloge à 50 Mhz fournit une période d'horloge ou microcycle ou cycle machine de
1/50000000 = 20 ns. Les cycles de recherche et d'exécution forment le cycle d'instruction. Ce
cycle d'instruction s'étend sur plusieurs cycles machine.
1
2
3
4
5
6
7
8
9
10
11
H
Cycle recherche
Cycle
exécution
Cycle recherche
Cycle instruction
C. Les micro commandes
Pour permettre le transfert des données entre les différentes entités connectées sur les bus du
processeur, des barrières en entrée et en sortie doivent être implantées. Ces barrières sont
symbolisées par un rond sur les connexions aux bus sur les schémas des processeurs qui suivent.
Exemple sur le premier schéma de processeur : registre R1 connecté aux Bus A et B. Les
barrières en entrée et en sortie du registre R1 sont contrôlées par les barrières nombusR1En et
nombusR1Sor. Quand nombusR1En est activée, la donnée disponible sur le bus nombus est
chargée dans R1. Quand nombusR1Sor est activée, la donnée disponible dans R1 est placée sur le
3
AMSI
2001/2002
Joëlle Delacroix
bus nombus. Quand nombusR1Sor est désactivée, le bus peut être utilisé pour véhiculer des
données à partir d'autres registres.
Exemple :
Transférer le contenu de R1 dans le registre R4
AR1Sor, CAB (liaison entre bus qui quand elle est activée, permet le transfert de données du bus
A vers le bus B) BR4En
On ne donne ici que les microcommandes activées, les autres étant par défaut non activées.
L'ensemble des microcommandes activées sur un cycle horloge forme une microinstruction.
L'ensemble des microinstructions constitue le microprogramme exécuté par l'unité de commande.
On compte pour les microcommandes
- les activations de porte
- les signaux de commandes liés au bus externe (LEC, ECR notamment)
- les commandes de sélection (S) sur les UALs
Exercices
Exercice 1. Manipulation des modes d’adressages
A l'issue de l'exécution du code assembleur suivant et compte tenu de l'état initial de la mémoire
et des registres du processeur, la case mémoire d'adresse (1000)16 a pour contenu la valeur
'a'?
199810 ?
10016 ?
Adresse (base16)
1000
1001
1002
1003
2000
2010
Contenu
a
b
2000
d
3000
305
Registre
Rsp
RIX
LOAD D R0 (1002)16
LOAD Im R1 (1002)10
PUSH D (1000)10
ADD Rg2 R0 R1
NEG Rg1 R1
ADD I R1 (1002)16
STORE Ix R1 (900) 16
4
Contenu
500
100
AMSI
2001/2002
Joëlle Delacroix
Exercice 2. Code Assembleur
Expliquez ce que fait le programme assembleur qui vous est donné sachant que la machine est sur
32 bits et travaille en complément à 2 pour la représentation des nombres signés. Les chiffres
sont exprimés en base 10. La case mémoire d’adresse 1000 contient la valeur 2147483640
Programme 1
0
4
LOAD D R1 1000
8
ADD Im R1 1
12
JMPO D 20
16
JMP D 8
20
LOAD Im RB 0
24
STORE B R1 0
Exercice 3. Exécution d'instructions machine
ARCHITECTURE 1 BUS
- Tous les registres sont de 32 bits,
- les instructions sont de format 32 bits
- Le compteur ordinal donne l' adresse du 1er octet de l' instruction
- le temps de cycle mémoire = un temps cycle horloge
- On appellera LEC et ECR les commandes lecture et écriture en mémoire(RAD registre
adresses mémoire et RDO registre de données). INCO permet l'incrémentation du CO.
Z
UAL
Y
R6
R0
RDO
RAD
CO
RI
Donnez le chronogramme d'exécution de l'instruction
ADD direct R3 champ2
ARCHITECTURE 2 BUS
On exécute sur l'architecture de processeur suivant plusieurs instructions avec des modes
d'adressage différents :
ADD Im R2 valeur : addition de R2 et de l'opérande valeur obtenu par adressage
immédiat et stockage du résultat dans R2
LOAD I R3 champ2 : chargement de R3 avec un opérande obtenu par adressage indirect.
5
AMSI
2001/2002
Joëlle Delacroix
AND basé R1 champ2 : Et logique entre le registre R1 et un opérande obtenu par
adressage basé et stockage du résultat dans R1
STORE Ix R5 champ2 : écriture à une adresse mémoire obtenue par adressage indexé du
contenu de R5
L'opération de lecture et d'écriture mémoire demande 1 cycle horloge. Tous les registres sont sur
32 bits. Les mots mémoire sont également sur 32 bits.
ARCHITECTURE DU PROCESSEUR
EXECUTIONS D’INSTRUCTIONS
RO
bus A
32 fils
R1
bus B
32 fils
R2
R3
R4
R5
R11
RDO
RAD
RI
cop m
champ2
Rsp
CO
RB
RIX
UAL
@
S
Y
Mémoire
S
UAL
32 bits
i o z s c
PSW
ARCHITECTURE 3 BUS
-Tous les registres sont de 32 bits,
- les instructions sont sur 32 bits
-Le compteur ordinal donne l' adresse du 1er octet de l' instruction
6
AMSI
2001/2002
Joëlle Delacroix
- le temps de cycle mémoire = un temps cycle horloge
- On appellera LEC et ECR les commandes lecture et écriture en mémoire(RAD registre d
adresses mémoire et RDO registre de données). ). INCO permet l'incrémentation du CO
- le passage d'un bus à l'autre se fait par l'intermédiaire d'un NOP sur l'UAL qui transfère
le contenu du tampon A sur le bus C sans modification.
Donnez le chronogramme d'exécution de l'instruction
ADD direct R3 champ2 et ADD reg R1 R2
R.I
bus A
bus B
tampon A
R0
R15
RDO
PSW
CO
tampon B
UAL
RAD
m
é
b
m
u
o
s
i
r
e
bus C
7
Téléchargement