2LFIG 2015-2016
Correction série N° 3
Enoncé :
Structure de l’instruction machine
Une instruction machine est un ensemble de bits désignant le traitement à faire (Les données
demandées)
Structure du mot d’état programme
Le mot d’état programme est un ensemble de bit spécifique à chaque mot d’instruction, ce
dernier nous permet de savoir l’état du programme et de trouver la routine pour traiter
l’interruption.
Si deux mots appartenant à la même routine donc ils ont le même mot d’état programme
Correction des questions
1- La configuration initiale
ME = 0F000000
CO= 00008000
R0= 00000000
R1= 00000000
R2= 00000000
R3= 00000000
Wiçal BEN MARZOUKA
1
2LFIG 2015-2016
La configuration initiale du processeur nous permet de savoir l’adresse du démarrage,
cette dernière se trouve dans le compteur ordinal :
« 00008000 » ; son mode d’état programma « 0F00 0 000 »
Le mode d’exécution est 0
Donc mode esclave
Nous utilisons quatre registres initialisés à 0 Vides
2- L’exécution :
Adresse
Mémoire
Clé
00008000
02208200
0F00
02 2 08200
Traitement Code d’instruction numéro 02 :
Copier le mot de l’adresse 00008200 (0000000F) dans le registre numéro 2
Pas de changement au niveau de la RAM
Processeur RAM
ME = 0F000000
CO= 00008004
R0= 00000000
R1= 00000000
R2= 0000000F
R3= 00000000
1
2
Adresse
Mémoire
Clé
00008004
04208204
0F00
Wiçal BEN MARZOUKA
2
2LFIG 2015-2016
04 2 08204
Traitement Code d’instruction numéro 04 :
Additionner le contenu du registre 02 (0000000F) avec le mot de l’adresse 00008204
(000000FA) dans le registre numéro 2
Pas de changement au niveau de la RAM
Processeur RAM
ME = 0F000000
CO= 00008008
R0= 00000000
R1= 00000000
R2= 00000109
R3= 00000000
3
Une interruption s’est introduite
Comme nous avons une interruption donc nous pouvons avoir un changement de contexte.
L’interruption provoque une coupure et une reprise par la suite :
1ér cas : Si le mode d’exécution de l’interruption est maitre donc l’interruption est prioritaire
nous mettons l’adresse en cours dans le file d’attente et nous effectuons un changement de
contexte c’est-à-dire de reprenons l’exécution, en appliquant la routine de l’adresse désignée
par l’interruption
2éme cas : Le mode d’exécution est esclave donc nous mettons l’adresse indiquée par
l’interruption dans le file d’attente et nous poursuivons avec l’adresse du CO.
Dans notre cas : Le code de l’interruption = « 1c »
Adresse
Mémoire
0000001C
0000101C
00000020
00000F00
Clé
0000
0000
Mot d’état programme 0000 1 01C
Mode maitre
Wiçal BEN MARZOUKA
3
2LFIG 2015-2016
Traitement Mettre l’adresse 00008008 dans le file d’attente
Poursuive avec l’adresse 00000F00
File d’attente Processeur
00008008
ME = 0000101C
CO= 00000F00
R0= 00000000
R1= 00000000
R2= 00000109
R3= 00000000
Adresse
Mémoire
Clé
00000F00
0F001E00
0000
0F 0 01E00
Traitement Code d’instruction 0F :
Publicité
Copier le contenu de CO & MEP dans la RAM à partir de l’@ 01E 00
Processeur RAM
ME = 0000101C
CO= 00000F04
R0= 00000000
R1= 00000000
R2= 00000109
R3= 00000000
00000F00
@ 01E00
0000101C
@ 01E01
4
Adresse
Mémoire
Clé
00000F04
F 0 0 0 1 F 0 8
0000
Wiçal BEN MARZOUKA
4
2LFIG 2015-2016
F 0 0 0 1 F 0 8
Traitement Code d’instruction numéro F0 :
Copier le contenu des 4 registres dans la RAM à partir de 01F08
Processeur RAM
ME = 0000101C
CO= 00000FA0
R0= 00000000
R1= 00000000
R2= 00000109
R3= 00000000
00000F00
@ 01E00
0000101C
@ 01E01
00000000
@ 01E08
00000000
@ 01E09
00000109
@ 01E10
00000000
@ 01E11
5
Adresse
Mémoire
Clé
00000FA0
0 1 2 0 0 0 0 0
0000
0 1 2 0 0 0 0 0
Wiçal BEN MARZOUKA
5
2LFIG 2015-2016
Traitement Code d’instruction numéro 01 :
Charger la valeur binaire de 00 dans R2
Processeur RAM
00000F00
@ 01E00
0000101C
@ 01E01
00000000
@ 01E08
00000000
@ 01E09
00000109
@ 01E10
00000000
@ 01E11
ME = 0000101C
CO= 00000FC4
R0= 00000000
R1= 00000000
R2= 00000000
R3= 00000000
6
Une interruption s’est introduite
Code interruption « 0c »
Adresse
Mémoire
Clé
0000000C
00000010
0 0 0 0 1 0 0 C
0000
0 0 0 0 0 A 0 0
0000
Mot d’état programme 0000 1 00C
Mode maitre
Wiçal BEN MARZOUKA
6
2LFIG 2015-2016
- Mode d’exécution de 1C= 1 Mode maitre Même priorité
- Mode d’exécution de 0C= 1 Mode maitre
Donc nous comparons les IPL des deux interruptions :
-
IPL de 1c = 01C
01C > 00C
-
IPL de 0C = 00C
Traitement Mettre l’adresse 0 0 0 0 0 A 0 0 dans le file d’attente
Poursuive avec l’adresse 00000FC4
File d’attente Processeur
0 0 0 0 0 A 0 0 00008008
Nous avons mis 0 0 0 0 0 A 0 0 à l’entête de la
file d’attente parce qu’elle est prioritaire
ME = 0000101C
CO= 00000FC4
R0= 00000000
R1= 00000000
R2= 00000000
Publicité
R3= 00000000
Adresse
Mémoire
Clé
00000FC4
F 1 0 0 1 E 0 8
0000
F 1 0 0 1 E 0 8
Traitement Code d’instruction numéro F1 :
Charger le contenu des 4 registres dans 01E08
Wiçal BEN MARZOUKA
7
2LFIG 2015-2016
Processeur RAM
ME = 0000101C
CO= 00000FC8
R0= 00000000
R1= 00000000
R2= 00000000
R3= 00000000
00000F00
@ 01E00
0000101C
@ 01E01
00000000
@ 01E08
00000000
@ 01E09
00000000
@ 01E10
00000000
@ 01E11
7
Adresse
Mémoire
Clé
00000FC8
1 F 0 0 1 E 0 0
0000
1 F 0 0 1 E 0 0
Traitement Code d’instruction numéro 1F :
Charger le contenu du CO & MEP à partir de l’adresse 0 1 E 0 0
Processeur RAM
Wiçal BEN MARZOUKA
8
2LFIG 2015-2016
ME = 0000100C
CO= 00000A00
R0= 00000000
R1= 00000000
R2= 00000000
R3= 00000000
00000FC8
@ 01E00
0000101C
@ 01E01
00000000
@ 01E08
00000000
@ 01E09
00000000
@ 01E10
00000000
@ 01E11
File d’attente
0 0 0 0 0 A 0 0
00008008
8
Adresse
Mémoire
Clé
00000A00
0 F 0 0 1 E 0 0
0000
0 F 0 0 1 E 0 0
Traitement Code d’instruction numéro 0F :
Copier le contenu du CO & MEP à partir de l’adresse 0 1 E 0 0
File d’attente
00008008
Wiçal BEN MARZOUKA
9
2LFIG 2015-2016
Processeur RAM
ME = 0000100C
CO= 00000000
R0= 00000000
R1= 00000000
R2= 00000000
R3= 00000000
00000A00
@ 01E00
0000100C
@ 01E01
00000000
@ 01E08
00000000
@ 01E09
00000000
@ 01E10
00000000
@ 01E11
8
Adresse
Mémoire
Clé
00000000
F 0 0 0 4 E 0 8
0000
F 0 0 0 4 E 0 8
Traitement Code d’instruction numéro F0 :
Copier le contenu des 4 registres à partir de l’adresse 0 1 E 0 8
File d’attente
Publicité
00008008
Wiçal BEN MARZOUKA
10
2LFIG 2015-2016
Processeur RAM
ME = 0000100C
CO= 00008008
R0= 00000000
R1= 00000000
R2= 00000000
R3= 00000000
00000A00
@ 01E00
0000100C
@ 01E01
00000000
@ 01E08
00000000
@ 01E09
00000000
@ 01E10
00000000
@ 01E11
9
Adresse
Mémoire
Clé
00008008
0 3 2 0 8 2 0 8
0000
0 3 2 0 8 2 0 8
Traitement Code d’instruction numéro F0 :
Copier le mot de R2 (00000000) dans la RAM : l’adresse 0 8 2 0 8
File d’attente
00008008
Wiçal BEN MARZOUKA
11
2LFIG 2015-2016
Processeur RAM
ME = 0F000000
CO= 0000800C
R0= 00000000
R1= 00000000
R2= 00000000
R3= 00000000
00000A00
@ 01E00
0000100C
@ 01E01
00000000
@ 01E08
00000000
@ 01E09
00000000
@ 01E10
00000000
@ 01E11
00000000 @0 8 2 08
10
Adresse
Mémoire
Clé
0000800C
1 F 0 0 8 4 0 0
0000
1 F 0 0 8 4 0 0
Traitement Code d’instruction numéro 1F :
Charger le CO & MEP à partir de l’@ 0 8 4 0 0
Wiçal BEN MARZOUKA
12
2LFIG 2015-2016
Processeur RAM
ME = 0F000000
CO=
R0= 00000000
R1= 00000000
R2= 00000000
R3= 00000000
00000A00
@ 01E00
0000100C
@ 01E01
00000000
@ 01E08
00000000
@ 01E09
00000000
@ 01E10
00000000
@ 01E11
00000000 @08208
0000800C @ 08400
0F000000 @ 08401
3- Réaction lors des interruptions
Lors de l’interruption 1C
Routine Reprise à partir de l’@ 00000F00 et mettre 00008008 dans le file
d’attente
Lors de l’interruption 0C
Routine Reprise à partir de l’@ 00000FC8 et mettre 00000A00 dans le file
d’attente
4- Le traitement réalisé
Wiçal BEN MARZOUKA
13
2LFIG 2015-2016
Le programme calcule l’opération 0000000F + 000000FA
Puis réinitialiser à 0
Wiçal BEN MARZOUKA
14