Telechargé par Mehrez Smail

11-interruptions-Aroussi

publicité
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)
CHAPITRE III:
INTERRUPTIONS
S. AROUSSI
Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/
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
INTRODUCTION

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.
3
DÉFINITION DE L’INTERRUPTION

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.
4
DÉROULEMENT D’UNE ROUTINE D’INTERRUPTION

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.
5
DÉROULEMENT D’UNE ROUTINE D’INTERRUPTION
6
TYPES D’INTERRUPTIONS

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
7
du processeur (débordement, division par zéro, etc)
TYPES D’INTERRUPTIONS (EXEMPLE)

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
8
TYPES D’INTERRUPTIONS (EXEMPLE)

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.
9
REGISTRE D’INTERRUPTION

A chaque cause d’interruption, on associe un indicateur
(un bit ou une bascule) : cela forme le registre
d’interruption.
1
Interruption 1
0
Interruption 2
0
Interruption 3
1
Interruption 4
…..
0
Interruption 5
Registre d’interruption
10
DÉTECTION D’UNE INTERRUPTION

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.
CPU

1
0
BI
…..
11
BV
0
Registre d’Interrupt
DÉTECTION D’UNE INTERRUPTION

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).
12
CONTEXTE DU PROCESSUS

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 13
du
programme interrompu.
CONTEXTE DU PROCESSUS

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
14
VECTORISATION DES INTERRUPTIONS

A chaque interruption est associée l’adresse de la routine
d’interruption correspondante dans une table appelée
vecteur d’interruptions.
15
VECTORISATION DES INTERRUPTIONS (EXEMPLE)

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.
16
VECTORISATION DES INTERRUPTIONS (EXEMPLE)

Le
vecteur
d’interruptions
regroupe
3
catégories
d’interruptions :
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
l’utilisateur
réservées
afin
qu’il
à
puisse
définir ses propres interruptions
suivant ses besoins.
17
RECHERCHE DE LA CAUSE D’INTERRUPTION

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.
18
SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

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,

19
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

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.
20
SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

Un système d’interruptions hiérarchisées comporte les
éléments suivants:
 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
21
SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

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
22
interruption appartement à u niveau non masqué.
SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

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.
23
SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

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
24
bascule du registre niveau (R.M.N) dans l’ordre décroissant des
priorités.
SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES
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.
25
SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES
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.
26
SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES
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.
27
10.
Désactivation du système d’interruption (remise à « 0 » de BV)
SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES
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
28
effet de restaurer le contenu des registres sauvegardés et de
réactiver le système d’interruption.
EXERCICE 1

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:
Ce système permet de valide
Niveau
Cause
Interruption
0
0
Panne de courant
masquer un niveau et inhiber
1
IT contrôleur E/S
une cause.
2, 3
Non utilisées
4
Non utilisée
5à7
IT contrôleur E/S
8
Non utilisée
9 à11
IT temps réel
12 à15
IT externe
16 à 19
Non utilisées
ou d’invalider le système IT,
1
Questions:
1. Faire le schéma détaillé du
2
système IT en précisant dessus
le
contenu
des
principaux
registres de démarrage
3
29
EXERCICE 1
2. Soit la séquence d’exécution suivante :
A.
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
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
30
EXERCICE 2

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:
Ce système permet de valide
Niveau
Cause
Interruption
0
0
Panne de courant
1
Inhibée
2
IT contrôleur E/S
3
Inhibée
4
IT matériel
5
IT contrôleur E/S
ou d’invalider le système IT,
masquer un niveau et inhiber
1
une cause.
Questions:
1. Faire le schéma détaillé du
2
6 et 7
IT contrôleur E/S
système IT en précisant dessus
3
8
IT contrôleur E/S
9
IT matériel
10
IT contrôleur E/S
11
Inhibée
le
contenu
des
principaux
registres de démarrage
31
EXERCICE 2
2. Soit la séquence d’exécution suivante :
A.
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
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
32
SYSTÈME DES INTERRUPTIONS DU 8086

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.
33
SYSTÈME DES INTERRUPTIONS DU 8086

Il possèdent trois bornes pour gérer les interruptions
matérielles :
8086
 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
34
masquable.
SYSTÈME DES INTERRUPTIONS DU 8086

Il possèdent trois bornes pour gérer les interruptions
matérielles :
8086
 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 savoir35si
leur demande d’interruption à été acceptée ou non par le processeur.
SYSTÈME DES INTERRUPTIONS DU 8086

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.
36
SYSTÈME DES INTERRUPTIONS DU 8086

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.
8086
37
SYSTÈME DES INTERRUPTIONS DU 8086

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.
8086
38
SYSTÈME DES INTERRUPTIONS DU 8086

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.
8086
39
SYSTÈME DES INTERRUPTIONS DU 8086

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.
IF
8086
40
SYSTÈME DES INTERRUPTIONS DU 8086

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
8086
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.
41
SYSTÈME DES INTERRUPTIONS DU 8086

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.
42
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
Téléchargement