Chapitre iii interruptions

43
CHAPITRE III: INTERRUPTIONS Université Saad Dahlab de Blida Faculté des Sciences Département d’Informatique Licence Génie des Systèmes Informatiques (GSI) Semestre 4 (2 ème année) S. AROUSSI Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/

Transcript of Chapitre iii interruptions

Page 1: Chapitre iii interruptions

CHAPITRE III:

INTERRUPTIONS

Université Saad Dahlab de Blida

Faculté des Sciences

Département d’Informatique

Licence Génie des Systèmes Informatiques (GSI)

Semestre 4 (2ème année)

S. AROUSSI

Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/

Page 2: Chapitre iii interruptions

PLAN DU CHAPITRE III

Introduction

Définition d’une interruption

Déroulement d’une routine d’interruption

Types d’interruptions

Registre d’interruption

Détection d’une interruption

Contexte du processus

Recherche de la cause d’une interruption

Systèmes d’interruptions hiérarchisées

Système des interruptions du 8086

2

Page 3: Chapitre iii interruptions

3

Sur une machine monoprocesseur, un seul programme (ou

processus) est exécuté à la fois.

Une autre composante peut demander à l’interrompre

pour faire temporairement autre chose. Par exemple:

Périphérique : un paquet réseau arrive, la souris a bougé

Gestion erreur : erreur arithmétique, instruction invalide

Il faut donc introduire un mécanisme matériel qui indique

au processeur d’arrêter le traitement courant. Ce

mécanisme s’appelle une interruption.

INTRODUCTION

Page 4: Chapitre iii interruptions

4

Une interruption est un mécanisme qui permet d'interrompre

l'exécution d'un processus suite à un événement extérieur ou intérieur

et de passer le contrôle à une routine dite "routine d'interruption"

ou traitement d’interruption.

Le système d'interruption est un dispositif, incorporé au niveau du

séquenceur, qui enregistre et traite les signaux d'interruption envoyés

au processeur :

1. Arrêter le processus en cours ;

2. Sauvegarder le contexte du processus interrompu;

3. Exécuter le programme de routine d'interruption ;

4. Restaurer le contexte du processus interrompu;

5. Reprendre l'exécution du processus interrompu.

DÉFINITION DE L’INTERRUPTION

Page 5: Chapitre iii interruptions

5

Donc, lorsque l'interruption se produit le processeur, après la fin de l'exécution

de l'instruction en cours, transfère le contrôle à la routine d'interruption

associée à l'événement.

La routine d’interruption fait d’abord une sauvegarde du contexte du

processus interrompu avant de réaliser son traitement.

A la fin de celui-ci l, le contexte du processus interrompu est restauré ce qui

lui permet de continuer son exécution convenablement à l’endroit où il a été

interrompu.

DÉROULEMENT D’UNE ROUTINE D’INTERRUPTION

Page 6: Chapitre iii interruptions

6

DÉROULEMENT D’UNE ROUTINE D’INTERRUPTION

Page 7: Chapitre iii interruptions

7

Les interruptions peuvent d’être d’origines diverses, mais on les

classe généralement en trois grands types :

Interruptions matérielles: prévient le processeur

d’événements externes (top Horloge, touche clavier pressée,

etc).

Interruptions logicielles: est déclenchée suite à

l’exécution d’une instruction d’appel d’une interruption

système ou utilisateur (instruction INT en assembleur 8086;

instruction read en pascal, etc)

Déroutement (ou exception): suite à une erreur interne

du processeur (débordement, division par zéro, etc)

TYPES D’INTERRUPTIONS

Page 8: Chapitre iii interruptions

8

Le système d’interruption de IBM peut avoir 256 interruptions:

Les interruptions logicielles regroupent des instructions spécifiques qui

permettent d'appeler des fonctions du BIOS ou du système d'exploitation.

Les déroutements sont au nombre de 6 et concernent :

La division par zéro

Le fonctionnement pas à pas (une interruption est générée à chaque

instruction)

Les problèmes pouvant apparaître lors de l'accès à la mémoire (défaut

de page, par exemple)

L'atteinte d'un point d'arrêt

Le débordement numérique

La non reconnaissance d'une instruction

TYPES D’INTERRUPTIONS (EXEMPLE)

Page 9: Chapitre iii interruptions

9

Les interruptions matérielles sont au nombre de 16. Elles

sont baptisées IRQ 0 à 15 (IRQ: Interrupt ReQuest).

Certaines sont pré-affectées, mais beaucoup d'entre elles

ne sont affectées à des événements périphériques que lors

de la configuration de la machine.

TYPES D’INTERRUPTIONS (EXEMPLE)

Page 10: Chapitre iii interruptions

10

A chaque cause d’interruption, on associe un indicateur

(un bit ou une bascule) : cela forme le registre

d’interruption.

REGISTRE D’INTERRUPTION

1

0

0

1

…..

0

Interruption 1

Interruption 2

Interruption 3

Interruption 4

Interruption 5

Registre d’interruption

Page 11: Chapitre iii interruptions

11

Supposant que le CPU possède une seule entrée

interruption sur laquelle sont reçues les interruptions.

Pour détecter la présence d’une interruption, le CPU

teste, à la fin de chaque instruction, l’état de la Bascule

d’Interruption (BI):

Si BI est à « 1 », CPU remet à « 0 » la Bascule de

Validation (BV) pour interdire à une autre interruption

de venir la suspendre.

DÉTECTION D’UNE INTERRUPTION

1

0

…..

0

BI

BV Registre d’Interruption

CP

U

Page 12: Chapitre iii interruptions

12

Lorsqu’une interruption est détectée, CPU procède aux

opérations suivantes:

1. Sauvegarde le contexte du processus interrompu;

2. Recherche la cause de l’interruption

3. Exécution du programme de traitement de

l'interruption ;

4. Restauration du contexte du processus interrompu;

5. Retour au programme interrompu avec revalidation

du système d’interruption (remettre BV à 1).

DÉTECTION D’UNE INTERRUPTION

Page 13: Chapitre iii interruptions

13

Toutes les informations qui permettront à CPU de

reprendre l’exécution du programme interrompu sont

sauvegardés lorsqu’une une interruption est détectée.

Ces informations sont:

L’adresse de la prochaine instruction à exécuter, contenue dans le

compteur ordinal (CO)

Les indications sur l’état du CPU au moment de l’interruption

données par le registre d’état (ou flags)

Les opérandes et les résultats intermédiaires contenus dans les

registres généraux.

Ces informations représente l’état ou le contexte du

programme interrompu.

CONTEXTE DU PROCESSUS

Page 14: Chapitre iii interruptions

14

Un mot d’état programme (Program Status Word ou

PSW) regroupe l’adresse de la prochaine instruction (CO)

et les bits de flag.

Lorsque le traitement de l’interruption est terminé, le

contexte du programme est restauré. Autrement dit, les

informations sauvegardées sont chargés dans leurs

registres respectifs

CONTEXTE DU PROCESSUS

Page 15: Chapitre iii interruptions

15

A chaque interruption est associée l’adresse de la routine

d’interruption correspondante dans une table appelée

vecteur d’interruptions.

VECTORISATION DES INTERRUPTIONS

Page 16: Chapitre iii interruptions

16

Suivant l’architecture d’Intel 8086, les interruptions sont

classées dans un vecteur de 256 entrées:

Chaque entrée occupe 4 octets et contient l’@ du programme associé à

l’interruption : IP puis CS.

Ce vecteur est placé dans la Mémoire Centrale à l’@ 00H et termine à l’@

3FFH.

VECTORISATION DES INTERRUPTIONS (EXEMPLE)

Page 17: Chapitre iii interruptions

17

Le vecteur d’interruptions regroupe 3 catégories

d’interruptions :

VECTORISATION DES INTERRUPTIONS (EXEMPLE)

1. Interruptions réservées par Intel

(matérielles et déroutements), à

savoir, l’int 0, int 1, etc.

2. Interruptions réservées par le

système d’exploitation, à savoir

l’INT print screen, INT timer, etc.

3. Interruption réservées à

l’utilisateur afin qu’il puisse

définir ses propres interruptions

suivant ses besoins.

Page 18: Chapitre iii interruptions

18

Lors de l'occurrence d'une interruption, le processeur

cherche la cause de l’interruption. Il reçoit alors un index

qui pointe dans le vecteur d’interruptions.

Cet index est

généré par le processeur dans le cas des déroutements

fourni par un circuit de la carte mère appelé contrôleur

d'interruption dans le cas d'une interruption matérielle

fourni par l'instruction dans le cas d'une interruption logicielle.

Au vu de cet index, le processeur accède à l'entrée

correspondante de la table d'interruption.

RECHERCHE DE LA CAUSE D’INTERRUPTION

Page 19: Chapitre iii interruptions

19

Dans système d'interruptions hiérarchisées, on associe aussi à chaque

interruption, une priorité qui permet de regrouper les interruptions

en classes ou niveaux.

Chaque niveau est caractérisée par un degré d'urgence d'exécution de

son programme d'interruption.

Règle : Une interruption de niveau i est plus prioritaire qu'une

interruption de niveau j si i j.

L'intérêt d’un tel système est la solution de problèmes tels que :

arrivée de plusieurs d'interruption pendant l'exécution d'une

instruction,

arrivée d'une d'interruption pendant l'exécution du traitement

d'une interruption précédente

SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

Page 20: Chapitre iii interruptions

20

Masquer et démasquer une interruption:

Certaines interruptions présentent tellement d'importance qu'il ne

doit pas être possible d'interrompre leur traitement. On masquera

alors les autres interruptions pour empêcher leur prise en compte.

Certaines interruptions sont non-masquables : on les prend

obligatoirement en compte.

Une interruption masquée n'est pas ignorée : elle est prise en

compte dès qu'elle est démasquée.

Armer et Désarmer une interruption:

Au contraire, une interruption peut être désarmée ou inhibée: elle

sera ignorée et donc perdue.

Par défaut, les interruptions sont évidemment armées.

SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

Page 21: Chapitre iii interruptions

21

Un système d’interruptions hiérarchisées comporte les

éléments suivants:

SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

R.M.N: Registre de

Mémorisation des Niveaux

R.M.C.N.i: Registre de

Mémorisation des Causes du

Niveau i

R.I.N.i: Registre d’Inhibition

de Niveau i

Exemple: Système d’interruptions à 4 niveaux

Page 22: Chapitre iii interruptions

22

Un système d’interruptions hiérarchisées comporte les

éléments suivants:

Des registres d’inhibition(R.I.N.i) : à chaque niveau est

associé un registre d’inhibition dans lequel une bascule est

réservée pour chacune des causes de niveau

Un registre masque (R.M.N): à chaque niveau est associée une

bascule dans ce registre. Masquer un niveau d’interruptions

revient à le bloquer momentanément. Une interruption qui

pourrait survenir alors que son niveau est masqué ne peut pas être

immédiatement prise en compte, mais elle est mémorisée. Elle est

prise en compte dés que son niveau est démasqué par une

interruption appartement à u niveau non masqué.

SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

Page 23: Chapitre iii interruptions

23

Un système d’interruptions hiérarchisées comporte les

éléments suivants:

Des registres d’inhibition (R.I.N.i)

Un registre masque (R.M.N)

Une bascule de validation (BV): permet de désactiver,

lorsqu’elle est à « 0 » tout le système d’interruption. Les

interruptions qui arrivent à CPU lorsque BV est à « 0 », ne sont

pas perdues puisqu’elles sont mémorisées.

Une bascule d’Interruption (BI): qui indique la présence d’une

interruption.

SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

Page 24: Chapitre iii interruptions

24

Lorsqu’elle arrive à un point interruptible, l’unité centrale

teste l’état de la bascule BI. Si elle est à « 1 », signifiant la

présence d’au moins une interruption appartenant à un

niveau non masqué, les opérations suivantes sont

réalisées:

1. Désactivation du mécanisme d’interruption: la bascule BV est

remise à « 0 »

2. Sauvegarde le contexte du programme courant: empiler le

PSW et les registres généraux nécessaires.

3. Détermination du niveau de l’interruption: en testant les

bascule du registre niveau (R.M.N) dans l’ordre décroissant des

priorités.

SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

Page 25: Chapitre iii interruptions

25

1. Désactivation du mécanisme d’interruption

2. Sauvegarde le contexte du programme courant

3. Détermination du niveau de l’interruption

4. Masquage des niveaux les moins prioritaires: en positionnant

à « 0 » des bascules du registre masque correspondant aux niveaux

qui doivent être démasqués.

5. Recherche de la cause de l’interruption: les bascules du registre

de mémorisation des causes associé au niveau actif (R.M.C.N.i) sont

testées dans un ordre qui définit la priorité entre les interruptions du

niveau.

SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

Page 26: Chapitre iii interruptions

26

1. Désactivation du mécanisme d’interruption

2. Sauvegarde le contexte du programme courant

3. Détermination du niveau de l’interruption

4. Masquage des niveaux les moins prioritaires

5. Recherche de la cause de l’interruption

6. Activation du mécanisme d’interruption: en remettant la

bascule BV à 1 pour autoriser la prise en compte d’interruptions plus

prioritaires

7. Chargement du contexte de programme de traitement de

l’interruption dans l’unité centrale.

8. Traitement effectif de l’interruption.

SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

Page 27: Chapitre iii interruptions

27

1. Désactivation du mécanisme d’interruption

2. Sauvegarde le contexte du programme courant

3. Détermination du niveau de l’interruption

4. Masquage des niveaux les moins prioritaires

5. Recherche de la cause de l’interruption

6. Activation du mécanisme d’interruption

7. Chargement du contexte de traitement de l’interruption.

8. Traitement effectif de l’interruption.

9. Acquittement de l’interruption: un accusé de réception est

adressé au périphérique source de l’interruption.

10. Désactivation du système d’interruption (remise à « 0 » de BV)

SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

Page 28: Chapitre iii interruptions

28

1. Désactivation du mécanisme d’interruption

2. Sauvegarde le contexte du programme courant

3. Détermination du niveau de l’interruption

4. Masquage des niveaux les moins prioritaires

5. Recherche de la cause de l’interruption

6. Activation du mécanisme d’interruption

7. Chargement du contexte de traitement de l’interruption.

8. Traitement effectif de l’interruption.

9. Acquittement de l’interruption.

10. Désactivation du système d’interruption

11. Exécution de l’instruction de retour. Cette instruction a pour

effet de restaurer le contenu des registres sauvegardés et de

réactiver le système d’interruption.

SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

Page 29: Chapitre iii interruptions

29

Soit une machine disposant d’un système d’interruption hiérarchisé.

Ce système permet de recevoir 20 causes d’interruptions réparties sur

4 niveaux comme suit:

EXERCICE 1

Niveau Cause Interruption

0 0 Panne de courant

1 IT contrôleur E/S

2, 3 Non utilisées

1 4 Non utilisée

5 à 7 IT contrôleur E/S

2 8 Non utilisée

9 à11 IT temps réel

3 12 à15 IT externe

16 à 19 Non utilisées

Ce système permet de valide

ou d’invalider le système IT,

masquer un niveau et inhiber

une cause.

Questions:

1. Faire le schéma détaillé du

système IT en précisant dessus

le contenu des principaux

registres de démarrage

Page 30: Chapitre iii interruptions

30

EXERCICE 1

Temps Programme Durée

T Le système est libre

T + 5 Exécution d’un programme de

niveau 3

20

T+10 IT de niveau 2 cause 9 10

T+12 IT de niveau 2 cause 11 8

T+15 IT de niveau 1 cause 5 5

2. Soit la séquence d’exécution suivante :

A. Faire un schéma complet de la séquence jusqu’à l’exécution de tous

les programme (numéroter chaque instant important)

B. Indiquer le contenu de la pile et du registre masque à chaque instant

Page 31: Chapitre iii interruptions

31

Soit une machine disposant d’un système d’interruption hiérarchisé.

Ce système permet de recevoir 12 causes d’interruptions réparties sur

4 niveaux comme suit:

EXERCICE 2

Niveau Cause Interruption

0 0 Panne de courant

1 Inhibée

1 2 IT contrôleur E/S

3 Inhibée

4 IT matériel

5 IT contrôleur E/S

2 6 et 7 IT contrôleur E/S

3 8 IT contrôleur E/S

9 IT matériel

10 IT contrôleur E/S

11 Inhibée

Ce système permet de valide

ou d’invalider le système IT,

masquer un niveau et inhiber

une cause.

Questions:

1. Faire le schéma détaillé du

système IT en précisant dessus

le contenu des principaux

registres de démarrage

Page 32: Chapitre iii interruptions

32

EXERCICE 2

2. Soit la séquence d’exécution suivante :

A. Faire un schéma complet de la séquence jusqu’à l’exécution de tous

les programme (numéroter chaque instant important)

B. Indiquer le contenu de la pile et du registre masque à chaque instant

Temps Programme Durée

T Le système est libre

T + 5 Exécution d’un programme de

niveau 3

20

T+10 IT de niveau 2 cause 6 10

T+12 IT de niveau 1 cause 4 8

T+15 IT de niveau 1 cause 7 5

Page 33: Chapitre iii interruptions

33

Le microprocesseur 8086 peut gérer jusqu’à 256

interruptions:

Les interruptions matérielles sont produites par

l’activation des lignes INTR et NMI du processeur;

Les interruptions logicielles sont produites par

l’instruction INT n, où n est le type de l’interruption ;

Les déroutements sont générées par le processeur.

SYSTÈME DES INTERRUPTIONS DU 8086

Page 34: Chapitre iii interruptions

34

Il possèdent trois bornes pour gérer les interruptions

matérielles :

NMI est utilisée pour envoyer au processeur une interruption non

masquable (NMI, Non Maskable Interrupt). Le processeur ne peut

pas ignorer ce signal, et va la traiter immédiatement. Ce signal est

normalement utilisé pour détecter des erreurs matérielles (mémoire

principale défaillante par exemple)

INTR (Interrupt Request), est utilisée pour indiquer l’arrivée

masquable.

SYSTÈME DES INTERRUPTIONS DU 8086

8086

Page 35: Chapitre iii interruptions

35

Il possèdent trois bornes pour gérer les interruptions

matérielles :

NMI (Non Maskable Interrupt).

INTR (Interrupt Request)

INTA (Interrupt Acknowledge) si la demande d’interruption reçue

sur INTR est acceptée, le processeur envoi l’acquittement

(confirmation d’acceptation) de cette demande d’interruption sur cette

ligne en injectant un 0). Cela permet aux périphériques de savoir si

leur demande d’interruption à été acceptée ou non par le processeur.

SYSTÈME DES INTERRUPTIONS DU 8086

8086

Page 36: Chapitre iii interruptions

36

A un instant donné, les interruptions INTR sont soit

masquées soit autorisées, suivant l’état de l’indicateur IF

(Interrupt Flag) du registre d’état:

Si IF = 1, le processeur accepte les demandes

d’interruptions INTR, c’est à dire qu’il les traite

immédiatement ;

Si IF = 0, le processeur ignore ces interruptions.

SYSTÈME DES INTERRUPTIONS DU 8086

Page 37: Chapitre iii interruptions

37

L’ordinateur est relié a plusieurs périphériques, alors qu’il

n’y avait qu’un seul signal de demande d’interruption,

INTR.

Le contrôleur d’interruptions (PIC, pour Programmable

Interruption Controler) est un circuit spécial, extérieur

au processeur, dont le rôle est de distribuer et de mettre en

attente les demandes d’interruptions provenant des

différents périphériques.

SYSTÈME DES INTERRUPTIONS DU 8086

8086

Page 38: Chapitre iii interruptions

38

Le contrôleur d’interruptions (PIC) est relié aux interfaces gérant les

périphériques par les bornes IRQ (InteRrupt reQuest).

Il gère les demandes d’interruption envoyées par les

périphériques, de façon à les envoyer une par une au processeur

(via INTR).

Il est possible de programmer le contrôleur pour affecter des

priorités différentes à chaque périphérique.

Avant d’envoyer l’interruption suivante, le contrôleur attend

d’avoir reçu le signal INTA, indiquant que le processeur a bien

traité l’interruption en cours.

SYSTÈME DES INTERRUPTIONS DU 8086

8086

Page 39: Chapitre iii interruptions

39

Déroulement d’une interruption externe masquable:

Un signal INT est émis par un périphérique (ou plutôt par

l’interface gérant celui-ci).

Le contrôleur d’interruptions reçoit ce signal sur une de ses

bornes IRQi. Dès que cela est possible (suivant les autres

interruptions en attente de traitement), le contrôleur envoie un

signal sur sa borne INT.

SYSTÈME DES INTERRUPTIONS DU 8086

8086

Page 40: Chapitre iii interruptions

40

Déroulement d’une interruption externe masquable:

Le processeur prend en compte le signal sur sa borne INTR après

avoir achevé l’exécution de l’instruction en cours (ce qui peut

prendre quelques cycles d’horloge). Si l’indicateur IF=0, le signal

est ignoré, sinon, la demande d’interruption est acceptée.

Si la demande est acceptée, le MPU met sa sortie INTA au

niveau 0 pendant 2 cycles d’horloge, pour indiquer au contrôleur

qu’il prend en compte sa demande.

SYSTÈME DES INTERRUPTIONS DU 8086

8086 IF

Page 41: Chapitre iii interruptions

41

Déroulement d’une interruption externe masquable:

En réponse, le contrôleur d’interruption place le numéro de

l’interruption associé à la borne IRQi sur le bus de données.

Le processeur lit le numéro de l’interruption sur le bus de

données et l’utilise pour trouver le vecteur d’interruption.

Ensuite:

sauvegarde les indicateurs du registre d’état sur la pile ;

met l’indicateur IF à 0 (masque les interruptions suivantes) ;

sauvegarde CS et IP sur la pile ;

cherche dans la table des vecteurs d’interruptions l’adresse du traitant

d’interruption, qu’il charge dans CS:IP.

SYSTÈME DES INTERRUPTIONS DU 8086

8086

Page 42: Chapitre iii interruptions

42

Déroulement d’une interruption externe masquable:

La procédure traitant l’interruption se déroule. Pendant ce

temps, les interruptions sont masquées (IF=0). Si le traitement

est long, on peut dans certains cas ré-autoriser les interruptions

avec l’instruction STI (positionner IF à 1).

La procédure se termine par l’instruction IRET, qui restaure CS,

IP et les indicateurs à partir de la pile, ce qui permet de

reprendre le programme qui avait été interrompu.

SYSTÈME DES INTERRUPTIONS DU 8086

Page 43: Chapitre iii interruptions

SOURCES DE CE COURS

Si Larabi Khelifati et Mouloud Koudil, Structure des ordinateurs, 2000.

Mourad Loukam, Chapitre V : Gestion Des Entrees/Sorties Physiques,

disponible sur www.loukam.net/2LMD_Chap5.pdf‎

Eric Magarotto, Cours d'Informatique Industrielle, 2006, Disponible sur

www.greyc.ensicaen.fr/˜emagarot/COURS.html

Mohamed Feredj; Cours Architecture des ordinateurs (Archi II) ,

INTERRUPTIONS, 2011.

Emmanuel Viennet, Architecture des ordinateurs, 2000, disponible sur

www.insea.ma/download/coursarchi.pdf‎

43