Correction série N° 3

Programming, Math, etc. · exam

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