Document 7751734

Download Report

Transcript Document 7751734

Cours Architecture des Systèmes
Informatiques
Jean-Jacques Girardot
[email protected]
http://kiwi.emse.fr/ASI/
Troisième séance
Instructions et Modes d’Adressage
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
1
Instructions et modes d’adressages
 CPU
& Registres
• Exemples : MAC, une machine virtuelle simplifiée
 Mémoire
& Modes d’adressage
 Instructions
• Sémantique
• Représentation
• Format des instructions
 Assembleur
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
2
Qu’y a-t-il dans une CPU ?
 Unité
arithmétique et logique
 Unité de commande
 Registres spécialisés et généraux
•
•
•
•
•
•
données [nombres entiers, nombres flottants] (Data Registers)
adresses (Adresses Registers)
pointeur d’instruction (PC, Program Counter/IP Instruction Pointer)
état du calculateur (PSW, Program Status Word/Flags)
pointeur de pile (SP, ou Stack Pointer)
…
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
3
Déroulement d’un programme
 Adresse
de lancement
• La première instruction à exécuter

Valeur initiale du registre PC (Program Counter)
 Exécution
séquentielle
• Rangement des instructions en MC par adresses croissantes
 Branchement
(conditionnel ou non)
• Changer l’adresse de la prochaine instruction à exécuter
 Exceptions
et Interruptions
• Suspension du déroulement normal d’un programme
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
4
Exceptions et Interruptions
 Évènements
qui provoquent l’arrêt du déroulement
normal d’un programme
• Exception (évènement interne) : une opération provoque une erreur
Division par zéro
 Accès à une adresse mémoire incorrecte
 Code opération invalide, etc.
• Interruption (évènement externe) : signal extérieur à la CPU
 Une unité d’E/S termine une opération/est en erreur
 Le signal “reset” est actionné

École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
5
Traitement d’une interruption
 L’évènement
est pris en charge par la CPU
• Différents niveaux selon la nature (16, 256…) ; priorités
• Différents codes
 Déroulement
:
• Sauvegarde du “contexte” du programme courant
Registres, PC, PSW
• Exécution du code de gestion de l’interruption
• Reprise éventuelle du déroulement du programme interrompu
 L’interruption est alors transparente

École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
6
Les instructions du calculateur
 Types
d’instructions
• Opérations de l’unité arithmétique et logique [UAL]
• Instructions de branchement
Branchement conditionnel, inconditionnel
• Appel & retour de sous-programme
• Instructions de contrôle diverses

 Syntaxe des instructions :
• Langage machine
0xA35002C4
• Assembleur
LD
R5,SD2
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
7
Instructions de l’UAL
 Réaliser
des opérations dyadiques
• op1 op2  op3
 Architecture
[ex: +, -, *, /, &,| , etc.]
de l’UAL
• Machine à pile
empiler, dépiler ; opération sur “sommet” de la pile
• Machine à “une adresse” et accumulateur/registres
 A A  op
 RX RX  op
• Machine à deux/trois adresses
 op1 op1  op2
 op1 op2  op3

École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
8
Machine à pile
 Accès
mémoire
• “Empiler” un opérande
push
• “Dépiler un opérande”
 pull

 Opérations
• S’appliquent aux “n” éléments
situés en sommet de pile
• Ex :
 98*(12+45)
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
9
Machine à accumulateur
 Un
registre spécifique (l’accumulateur) sert aux
opérations.
LOAD OP2
• op1 op2  op3
ADD
OP3
se traduit par :
STORE OP1
 Chargement depuis la mémoire : LOAD
 Écriture en mémoire : STORE
 Opérations : ADD, SUB, MUL, etc.
• Les expressions complexes utilisent des “temporaires”
 (A+B)*(C-D) devient :
LOAD A
STORE TMP1
SUB D
ADD B
LOAD
C
MUL TMP1
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
10
Machine à registres multiples
 Registres
spécialisés/non : données/adresses
• caractéristiques différentes (taille 32/24 bits)
 Chaque
registre (de données) se comporte comme
un accumulateur
 Opérations registre/mémoire, ou registre/registre

(A+B)*(C-D) devient :
LOAD R2,A
ADD R2,B
LOAD R3,C
SUB R3,D
MUL R2,R3
 Architectures RISC (Reduced Instruction Set Computer)
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
11
Instructions à adresses multiples
 Machines
anciennes / exotiques
•
•
•
•
taille variable des instructions : 1 à 26 octets…
cas des machines CISC “Complex Instruction Set Computer”
souvent réalisé par microprogrammation
opérations spécialisées
 déplacement de zones de mémoire
 conversion de zones de mémoire
 opérations sur nombres flottants
• Ex: 8080 et descendants…
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
12
SIM, un ordinateur “pédagogique”
Une machine imaginaire
 La
CPU
• 16 registres généraux 16 bits (données & adresses), R0, R1… R15
• 1 registre programme 16 bits, PC
• 1 registre d’état 16 bits, PSW : R..POCSZeeeeeeee
R : bit “run” : 1 si le calculateur est en marche
P : bit “parité” : bit de poids faible du résultat du dernier calcul
O : bit “overflow” : dépassement de capacité en complément à 2
C : bit “carry” : retenue en complément à 1
S : bit “signe” : bit de poids fort du résultat du dernier calcul
Z : bit “zéro” : 1 si le résultat du dernier calcul est nul
eeeeeeee : code d’erreur ou d’interruption
• Mémoire de 64 ko, adressable en mots (16 bits) ou octets (8 bits)
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
13
Les instructions de la machine
2
Formats : court, 16 bits, ou long 32 bits
0 mm ccccc xxxx yyyy
1 mm ccccc xxxx yyyy aaaaaaaaaaaaaaaa
•
•
•
•
•
•
bit 0 : format (court 0 ou long 1)
bits 1-2 : mode M (3 modes : immédiat 00, direct 01, indirect 10)
bits 3-7 : code opération C (32 opérations)
bits 8-11 : constante/registre X
bits 12-15 : constante/registre Y
bits 16-31 : constante/adresse mémoire A
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
14
Ex: chargement de registre : 0x01
0 00 00001 0101 0011
0153

R5 reçoit la valeur 3 (adressage court immédiat)
LD R5,R3
0 01 00001 0101 0011
2153

R5 reçoit le contenu de R3 (adressage court direct)
LD R5,(R3)
0 10 00001 0101 0011
4153

LD
R5,#3



R3 désigne un mot de la mémoire, R5 reçoit le contenu de ce mot (indirect)
 LD.L R5,#0x3F24 1 00 00001 0101 0000 0011111100100100

R5 reçoit la valeur 0x3F24 (adressage long immédiat)
 LD.L R5,0x3F24

8150 3F24
1 01 00001 0101 0000 0011111100100100
R5 reçoit la valeur contenue dans le mot d’adresse 0x3F24
(adressage long direct)
A150 3F24
 LD.L R5,0x3F24(R3)1 10 00001 0101 0011 0011111100100100

R5 reçoit la valeur située dans le mot dont l’adresse est obtenue en ajoutant le
contenu de R3 à 0x3F24 (adressage long indexé)
C153 3F24
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
15
Opérations arithmétiques et logiques
(1)
 Arithmétiques :
 Addition : ADD, 0x03. Ex:
 Soustraction : SUB, 0x04. Ex:
ADD R2,#8 0328
SUB R5,R9 2459
 Logiques
 And : AND, 0x07. Ex
AND R6,(R11)
 Or : OR, 0x06. Ex:
OR.L R12,MASK
 Xor: XOR, 0x08. Ex XOR.L R3,#0x8080
476B
A6C01234
88308080
 Comparaison
 Compare: CMP, 0x05. CMP.L R7,MASK(R13) C57D1234
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
16
Opérations arithmétiques et logiques
(2)
 Arithmétiques :
 Opposé : NEG 0x16. Ex:
NEG R2
1620
 Décalage arithmétique à gauche : SAL 0x12. (id: SAR 0x13,
décalage à droite). Ex:
SAL R5,#9 1259
 Logiques
 Not : NOT 0x17. Ex
NOT R6
1760
 Décalage logique à gauche : SLL 0x10. (id: SLR 0x11).
Ex:
SLL R5,R9 3059
 Décalage circulaire à gauche : SCL 0x14. (id: SCR 0x15).
Ex:
SCL R5,R9 3459
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
17
Opérations arithmétiques et logiques
(3)
 Multiplication & Division
• MUL 0x18, DIV 0x19. Opèrent sur un couple de registres, R0-R1 :
le produit de deux entiers 16 bits est un entier 32 bits.
 MUL R4 1840 [R0-R1]  R0*R4
 DIV R4 1940 [R0-R1]  R4

[R0-R1] est divisé par R4 ; R0 reçoit le quotient entier, R1 le reste
 Positionnement
des drapeaux du PSW
• P, S et Z : toutes les opérations arithmétiques et logiques, chargement
• C et O : opérations arithmétiques ; décalages (C : bit sortant à droite,
O : bit sortant à gauche)
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
18
Exemple - 1
 Calcul
de
C=(A+5)*(B-1)
• A est à l’adresse 0x1020, B à l’adresse 0x1044, C en 0x1028
LD.L
ADD
LD.L
SUB
MUL
ST.L
R0,A
R0,#5
R2,B
R2,#1
R2
R1,C
 Instruction
A100 1020
0305
A120 1044
0421
1820
A910 1028
Store, ST, 0x09 : “décharger un registre”
• Formats directs et indirects, courts et longs.
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
19
Opérations de branchement
Instruction unique : Jump, 0x0F.
Opération effective : bits 8 à 11. Ex : 0000, branchement inconditionnel


Pas de mode d’adressage court immédiat.
JMP R3
0 01 01111 0000 0011
2F03
PC reçoit le contenu de R3 (adressage court direct)
JMP (R3)
0 10 01111 0000 0011
4F03



R3 désigne un mot de la mémoire, PC reçoit le contenu de ce mot (indirect)
 JMP.L #0x3F24
1 00 01111 0000 0000 0011111100100100
 PC reçoit la valeur 0x3F24 (adressage long immédiat)
8F00 3F24
 JMP.L 0x3F24

1 01 01111 0000 0000 0011111100100100
PC reçoit la valeur contenue dans le mot d’adresse 0x3F24
(adressage long direct)
AF00 3F24
 JMP.L 0x3F24(R3)1 10 01111 0000 0011 0011111100100100

PC reçoit la valeur située dans le mot dont l’adresse est obtenue en ajoutant le
contenu de R3 à 0x3F24 (adressage long indexé)
CF03 3F24
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
20
Branchements conditionnels

JEQ : jump si égal 0x1
• JEQ R5

(Z=0 et S=0)
JL : jump si inférieur 0x4
• JLT R5

2F35
2F45
(S=1)
JGE : supérieur ou égal 0x5
• JGE R5
2F55

(S=0)
2F65
(Z=1 ou S=1)
JC : saut si carry 0x8
• JC R5
(saut si Z=0)
JG : jump si supérieur 0x3
• JGT R5

2F25
JLE : inférieur ou égal 0x6
• JLE R5
(saut si Z=1)
JNE : jump si non égal 0x2
• JNE R5

2F15

2F85
(C=1)
JNC : non carry, 0xA (C=0)
 JO : overflow, 0x9 (O=1)
 JNO : non overflow, 0xB (O=0)
 JP : parity, 0xC (P=1)
 JNP : non parity, 0xD (P=0)

École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
21
Exemple - 2
 Calcul
de
C=MAX(A,B)
• A est à l’adresse 0x1020, B à l’adresse 0x1044,
C en 0x1028, le code en0x400
0400
0404
0408
040C
0410
LD.L
CMP.L
JGT
LD.L
ST.L
R0,A
R0,B
0x410
R0,B
R0,C
A100
A500
8F30
A100
A900
1020
1044
0410
1044
1028
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
22
Exemple - 3 : PGCD de 2 nombres
 Algorithme
:
• Nombres dans R2 et R3
• Étape 1 : si R2 = R3, alors :
R2 est le PGCD ; arrêt du programme.
• Étape 2 : si R2 > R3, échanger R2 et R3
• Étape 3 : soustraire R2 de R3
• Étape 4 : revenir à l’étape 1
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
23
PGCD : le programme
Code placé en 0x1000
TEST:CMP
SUITE:
FIN:
R2,R3
JEQ FIN
JLT SUITE
LD
R0,R3
LD
R3,R2
LD
R2,R0
SUB R3,R2
JMP TEST
...
1000
1002
1006
100A
100C
100E
1010
1012
1016
2523
8F10 1016
8F40 1010
2103
2132
2120
2432
8F00 1000
...
École des Mines de Saint-Etienne. 158, cours Fauriel. 42 023 Saint-Etienne Cedex 2. Tél. 04 77 42 01 23. Fax. 04 77 42 66 66.
24