Vous êtes sur la page 1sur 11

Université Saad Dahlab de Blida

Faculté des Sciences


PLAN DU CHAPITRE III
Département d’Informatique
Licence Génie des Systèmes Informatiques (GSI) Introduction
Semestre 4 (2ème année)
Définition d’une interruption

Déroulement d’une routine d’interruption


CHAPITRE III: Types d’interruptions

Registre d’interruption
INTERRUPTIONS Détection d’une interruption

Contexte du processus

Recherche de la cause d’une interruption


S. AROUSSI
Systèmes d’interruptions hiérarchisées
Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/ 2
Système des interruptions du 8086

INTRODUCTION DÉFINITION DE L’INTERRUPTION

Sur une machine monoprocesseur, un seul programme (ou 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
processus) est exécuté à la fois.
et de passer le contrôle à une routine dite "routine d'interruption"
Une autre composante peut demander à l’interrompre ou traitement d’interruption.

pour faire temporairement autre chose. Par exemple: Le système d'interruption est un dispositif, incorporé au niveau du
séquenceur, qui enregistre et traite les signaux d'interruption envoyés
Périphérique : un paquet réseau arrive, la souris a bougé
au processeur :
Gestion erreur : erreur arithmétique, instruction invalide
1. Arrêter le processus en cours ;
Il faut donc introduire un mécanisme matériel qui indique 2. Sauvegarder le contexte du processus interrompu;
au processeur d’arrêter le traitement courant. Ce 3. Exécuter le programme de routine d'interruption ;
mécanisme s’appelle une interruption. 4. Restaurer le contexte du processus interrompu;
3 4
5. Reprendre l'exécution du processus interrompu.
DÉROULEMENT D’UNE ROUTINE D’INTERRUPTION 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 6

TYPES D’INTERRUPTIONS TYPES D’INTERRUPTIONS (EXEMPLE)


Les interruptions peuvent d’être d’origines diverses, mais on les Le système d’interruption de IBM peut avoir 256 interruptions:

classe généralement en trois grands types : Les interruptions logicielles regroupent des instructions spécifiques qui
permettent d'appeler des fonctions du BIOS ou du système d'exploitation.
Interruptions matérielles: prévient le processeur
Les déroutements sont au nombre de 6 et concernent :
d’événements externes (top Horloge, touche clavier pressée,
La division par zéro
etc).
Le fonctionnement pas à pas (une interruption est générée à chaque
Interruptions logicielles: est déclenchée suite à
instruction)
l’exécution d’une instruction d’appel d’une interruption
Les problèmes pouvant apparaître lors de l'accès à la mémoire (défaut
système ou utilisateur (instruction INT en assembleur 8086;
de page, par exemple)
instruction read en pascal, etc)
L'atteinte d'un point d'arrêt
Déroutement (ou exception): suite à une erreur interne Le débordement numérique
7 8
du processeur (débordement, division par zéro, etc) La non reconnaissance d'une instruction
TYPES D’INTERRUPTIONS (EXEMPLE) REGISTRE D’INTERRUPTION
Les interruptions matérielles sont au nombre de 16. Elles A chaque cause d’interruption, on associe un indicateur
sont baptisées IRQ 0 à 15 (IRQ: Interrupt ReQuest). (un bit ou une bascule) : cela forme le registre
Certaines sont pré-affectées, mais beaucoup d'entre elles d’interruption.
ne sont affectées à des événements périphériques que lors
1 Interruption 1
de la configuration de la machine. 0 Interruption 2
0 Interruption 3
1 Interruption 4
…..
0 Interruption 5

Registre d’interruption

9 10

DÉTECTION D’UNE INTERRUPTION DÉTECTION D’UNE INTERRUPTION


Supposant que le CPU possède une seule entrée Lorsqu’une interruption est détectée, CPU procède aux
interruption sur laquelle sont reçues les interruptions. opérations suivantes:

Pour détecter la présence d’une interruption, le CPU 1. Sauvegarde le contexte du processus interrompu;
teste, à la fin de chaque instruction, l’état de la Bascule 2. Recherche la cause de l’interruption
d’Interruption (BI):
3. Exécution du programme de traitement de
Si BI est à « 1 », CPU remet à « 0 » la Bascule de l'interruption ;
Validation (BV) pour interdire à une autre interruption 4. Restauration du contexte du processus interrompu;
de venir la suspendre. 1
5. Retour au programme interrompu avec revalidation
0
CPU

BI
…..
11
du système d’interruption (remettre BV à 1). 12
0
BV
Registre d’Interruption
CONTEXTE DU PROCESSUS CONTEXTE DU PROCESSUS
Toutes les informations qui permettront à CPU de
Un mot d’état programme (Program Status Word ou
reprendre l’exécution du programme interrompu sont
sauvegardés lorsqu’une une interruption est détectée. PSW) regroupe l’adresse de la prochaine instruction (CO)

Ces informations sont: et les bits de flag.


L’adresse de la prochaine instruction à exécuter, contenue dans le
compteur ordinal (CO)
Lorsque le traitement de l’interruption est terminé, le

Les indications sur l’état du CPU au moment de l’interruption contexte du programme est restauré. Autrement dit, les
données par le registre d’état (ou flags)
Les opérandes et les résultats intermédiaires contenus dans les informations sauvegardées sont chargés dans leurs
registres généraux.
registres respectifs
Ces informations représente l’état ou le contexte 13
du 14

programme interrompu.

VECTORISATION DES INTERRUPTIONS VECTORISATION DES INTERRUPTIONS (EXEMPLE)


A chaque interruption est associée l’adresse de la routine Suivant l’architecture d’Intel 8086, les interruptions sont
d’interruption correspondante dans une table appelée classées dans un vecteur de 256 entrées:
vecteur d’interruptions. 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.

15 16
VECTORISATION DES INTERRUPTIONS (EXEMPLE) RECHERCHE DE LA CAUSE D’INTERRUPTION
Le vecteur d’interruptions regroupe 3 catégories Lors de l'occurrence d'une interruption, le processeur
d’interruptions : cherche la cause de l’interruption. Il reçoit alors un index
1. Interruptions réservées par Intel qui pointe dans le vecteur d’interruptions.
(matérielles et déroutements), à
savoir, l’int 0, int 1, etc.
Cet index est

2. Interruptions réservées par le généré par le processeur dans le cas des déroutements
système d’exploitation, à savoir fourni par un circuit de la carte mère appelé contrôleur
l’INT print screen, INT timer, etc. d'interruption dans le cas d'une interruption matérielle
3. Interruption réservées à
fourni par l'instruction dans le cas d'une interruption logicielle.
l’utilisateur afin qu’il puisse
définir ses propres interruptions Au vu de cet index, le processeur accède à l'entrée
suivant ses besoins. 17 correspondante de la table d'interruption. 18

SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

Dans système d'interruptions hiérarchisées, on associe aussi à chaque Masquer et démasquer une interruption:
interruption, une priorité qui permet de regrouper les interruptions Certaines interruptions présentent tellement d'importance qu'il ne
en classes ou niveaux. doit pas être possible d'interrompre leur traitement. On masquera

Chaque niveau est caractérisée par un degré d'urgence d'exécution de alors les autres interruptions pour empêcher leur prise en compte.

son programme d'interruption. Certaines interruptions sont non-masquables : on les prend

Règle : Une interruption de niveau i est plus prioritaire qu'une obligatoirement en compte.

interruption de niveau j si i < j. Une interruption masquée n'est pas ignorée : elle est prise en

L'intérêt d’un tel système est la solution de problèmes tels que : compte dès qu'elle est démasquée.

arrivée de plusieurs d'interruption pendant l'exécution d'une Armer et Désarmer une interruption:
instruction, Au contraire, une interruption peut être désarmée ou inhibée: elle
19 20
arrivée d'une d'interruption pendant l'exécution du traitement sera ignorée et donc perdue.
d'une interruption précédente Par défaut, les interruptions sont évidemment armées.
SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

Un système d’interruptions hiérarchisées comporte les Un système d’interruptions hiérarchisées comporte les
éléments suivants: é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


R.M.N: Registre de bascule dans ce registre. Masquer un niveau d’interruptions
Mémorisation des Niveaux
revient à le bloquer momentanément. Une interruption qui
R.M.C.N.i: Registre de
pourrait survenir alors que son niveau est masqué ne peut pas être
Mémorisation des Causes du
immédiatement prise en compte, mais elle est mémorisée. Elle est
Niveau i
Exemple: Système d’interruptions à 4 niveaux prise en compte dés que son niveau est démasqué par une
R.I.N.i: Registre d’Inhibition 21 22

de Niveau i interruption appartement à u niveau non masqué.

SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES

Un système d’interruptions hiérarchisées comporte les Lorsqu’elle arrive à un point interruptible, l’unité centrale
éléments suivants: teste l’état de la bascule BI. Si elle est à « 1 », signifiant la
Des registres d’inhibition (R.I.N.i) présence d’au moins une interruption appartenant à un
Un registre masque (R.M.N) niveau non masqué, les opérations suivantes sont
Une bascule de validation (BV): permet de désactiver, réalisées:
lorsqu’elle est à « 0 » tout le système d’interruption. Les 1. Désactivation du mécanisme d’interruption: la bascule BV est
interruptions qui arrivent à CPU lorsque BV est à « 0 », ne sont remise à « 0 »
pas perdues puisqu’elles sont mémorisées.
2. Sauvegarde le contexte du programme courant: empiler le
Une bascule d’Interruption (BI): qui indique la présence d’une PSW et les registres généraux nécessaires.
interruption.
3. Détermination du niveau de l’interruption: en testant les
23 24
bascule du registre niveau (R.M.N) dans l’ordre décroissant des
priorités.
SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES
1. Désactivation du mécanisme d’interruption 1. Désactivation du mécanisme d’interruption

2. Sauvegarde le contexte du programme courant 2. Sauvegarde le contexte du programme courant

3. Détermination du niveau de l’interruption 3. Détermination du niveau de l’interruption

4. Masquage des niveaux les moins prioritaires: en positionnant 4. Masquage des niveaux les moins prioritaires
à « 0 » des bascules du registre masque correspondant aux niveaux 5. Recherche de la cause de l’interruption
qui doivent être démasqués.
6. Activation du mécanisme d’interruption: en remettant la
5. Recherche de la cause de l’interruption: les bascules du registre bascule BV à 1 pour autoriser la prise en compte d’interruptions plus
de mémorisation des causes associé au niveau actif (R.M.C.N.i) sont prioritaires
testées dans un ordre qui définit la priorité entre les interruptions du
7. Chargement du contexte de programme de traitement de
niveau.
l’interruption dans l’unité centrale.
25 8. Traitement effectif de l’interruption. 26

SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES SYSTÈMES D’INTERRUPTIONS HIÉRARCHISÉES


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

2. Sauvegarde le contexte du programme courant 2. Sauvegarde le contexte du programme courant

3. Détermination du niveau de l’interruption


3. Détermination du niveau de l’interruption
4. Masquage des niveaux les moins prioritaires
4. Masquage des niveaux les moins prioritaires
5. Recherche de la cause de l’interruption
5. Recherche de la cause de l’interruption
6. Activation du mécanisme d’interruption
6. Activation du mécanisme d’interruption
7. Chargement du contexte de traitement de l’interruption.
7. Chargement du contexte de traitement de l’interruption.
8. Traitement effectif de l’interruption.
8. Traitement effectif de l’interruption.
9. Acquittement de l’interruption.
9. Acquittement de l’interruption: un accusé de réception est 10. Désactivation du système d’interruption
adressé au périphérique source de l’interruption.
11. Exécution de l’instruction de retour. Cette instruction a pour
27 28
10. Désactivation du système d’interruption (remise à « 0 » de BV) effet de restaurer le contenu des registres sauvegardés et de
réactiver le système d’interruption.
EXERCICE 1 EXERCICE 1
Soit une machine disposant d’un système d’interruption hiérarchisé. 2. Soit la séquence d’exécution suivante :
Ce système permet de recevoir 20 causes d’interruptions réparties sur
Temps Programme Durée
4 niveaux comme suit:
T Le système est libre

Ce système permet de valide T+5 Exécution d’un programme de 20


Niveau Cause Interruption niveau 3
ou d’invalider le système IT, 0 0 Panne de courant T+10 IT de niveau 2 cause 9 10
masquer un niveau et inhiber 1 IT contrôleur E/S T+12 IT de niveau 2 cause 11 8
une cause. 2, 3 Non utilisées T+15 IT de niveau 1 cause 5 5
1 4 Non utilisée
Questions:
5à7 IT contrôleur E/S
1. Faire le schéma détaillé du A. Faire un schéma complet de la séquence jusqu’à l’exécution de tous
2 8 Non utilisée
système IT en précisant dessus 9 à11 IT temps réel
les programme (numéroter chaque instant important)

le contenu des principaux 3 12 à15 IT externe B. Indiquer le contenu de la pile et du registre masque à chaque instant
registres de démarrage 16 à 19 Non utilisées 29 30

EXERCICE 2 EXERCICE 2
Soit une machine disposant d’un système d’interruption hiérarchisé. 2. Soit la séquence d’exécution suivante :
Ce système permet de recevoir 12 causes d’interruptions réparties sur
Temps Programme Durée
4 niveaux comme suit:
Niveau Cause Interruption T Le système est libre
Ce système permet de valide 0 0 Panne de courant T+5 Exécution d’un programme de 20
niveau 3
ou d’invalider le système IT, 1 Inhibée
T+10 IT de niveau 2 cause 6 10
1 2 IT contrôleur E/S
masquer un niveau et inhiber T+12 IT de niveau 1 cause 4 8
3 Inhibée
une cause. T+15 IT de niveau 1 cause 7 5
4 IT matériel
Questions: 5 IT contrôleur E/S
1. Faire le schéma détaillé du 2 6 et 7 IT contrôleur E/S A. Faire un schéma complet de la séquence jusqu’à l’exécution de tous

système IT en précisant dessus 3 8 IT contrôleur E/S les programme (numéroter chaque instant important)
9 IT matériel
le contenu des principaux B. Indiquer le contenu de la pile et du registre masque à chaque instant
10 IT contrôleur E/S
31 32
registres de démarrage 11 Inhibée
SYSTÈME DES INTERRUPTIONS DU 8086 SYSTÈME DES INTERRUPTIONS DU 8086
Le microprocesseur 8086 peut gérer jusqu’à 256 Il possèdent trois bornes pour gérer les interruptions
matérielles :
interruptions: 8086

Les interruptions matérielles sont produites par

l’activation des lignes INTR et NMI du processeur; NMI est utilisée pour envoyer au processeur une interruption non
masquable (NMI, Non Maskable Interrupt). Le processeur ne peut
Les interruptions logicielles sont produites par pas ignorer ce signal, et va la traiter immédiatement. Ce signal est
normalement utilisé pour détecter des erreurs matérielles (mémoire
l’instruction INT n, où n est le type de l’interruption ;
principale défaillante par exemple)
Les déroutements sont générées par le processeur. INTR (Interrupt Request), est utilisée pour indiquer l’arrivée
33 34
masquable.

SYSTÈME DES INTERRUPTIONS DU 8086 SYSTÈME DES INTERRUPTIONS DU 8086


Il possèdent trois bornes pour gérer les interruptions A un instant donné, les interruptions INTR sont soit
matérielles :
8086 masquées soit autorisées, suivant l’état de l’indicateur IF

(Interrupt Flag) du registre d’état:

NMI (Non Maskable Interrupt). Si IF = 1, le processeur accepte les demandes


INTR (Interrupt Request)
d’interruptions INTR, c’est à dire qu’il les traite
INTA (Interrupt Acknowledge) si la demande d’interruption reçue
sur INTR est acceptée, le processeur envoi l’acquittement immédiatement ;
(confirmation d’acceptation) de cette demande d’interruption sur cette
Si IF = 0, le processeur ignore ces interruptions.
ligne en injectant un 0). Cela permet aux périphériques de savoir35si 36

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


SYSTÈME DES INTERRUPTIONS DU 8086 SYSTÈME DES INTERRUPTIONS DU 8086
Le contrôleur d’interruptions (PIC) est relié aux interfaces gérant les
L’ordinateur est relié a plusieurs périphériques, alors qu’il
périphériques par les bornes IRQ (InteRrupt reQuest).
n’y avait qu’un seul signal de demande d’interruption,
Il gère les demandes d’interruption envoyées par les
INTR.
périphériques, de façon à les envoyer une par une au processeur
Le contrôleur d’interruptions (PIC, pour Programmable (via INTR).

Interruption Controler) est un circuit spécial, extérieur Il est possible de programmer le contrôleur pour affecter des

au processeur, dont le rôle est de distribuer et de mettre en priorités différentes à chaque périphérique.

attente les demandes d’interruptions provenant des Avant d’envoyer l’interruption suivante, le contrôleur attend
d’avoir reçu le signal INTA, indiquant que le processeur a bien
différents périphériques.
8086 traité l’interruption en cours.
8086

37 38

SYSTÈME DES INTERRUPTIONS DU 8086 SYSTÈME DES INTERRUPTIONS DU 8086


Déroulement d’une interruption externe masquable: Déroulement d’une interruption externe masquable:
Un signal INT est émis par un périphérique (ou plutôt par Le processeur prend en compte le signal sur sa borne INTR après
l’interface gérant celui-ci). avoir achevé l’exécution de l’instruction en cours (ce qui peut
Le contrôleur d’interruptions reçoit ce signal sur une de ses prendre quelques cycles d’horloge). Si l’indicateur IF=0, le signal
bornes IRQi. Dès que cela est possible (suivant les autres est ignoré, sinon, la demande d’interruption est acceptée.
interruptions en attente de traitement), le contrôleur envoie un Si la demande est acceptée, le MPU met sa sortie INTA au
signal sur sa borne INT. niveau 0 pendant 2 cycles d’horloge, pour indiquer au contrôleur
qu’il prend en compte sa demande.
8086

IF 8086

39 40
SYSTÈME DES INTERRUPTIONS DU 8086 SYSTÈME DES INTERRUPTIONS DU 8086
Déroulement d’une interruption externe masquable: Déroulement d’une interruption externe masquable:
En réponse, le contrôleur d’interruption place le numéro de La procédure traitant l’interruption se déroule. Pendant ce
l’interruption associé à la borne IRQi sur le bus de données. temps, les interruptions sont masquées (IF=0). Si le traitement

Le processeur lit le numéro de l’interruption sur le bus de est long, on peut dans certains cas ré-autoriser les interruptions
8086
données et l’utilise pour trouver le vecteur d’interruption. avec l’instruction STI (positionner IF à 1).

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


sauvegarde les indicateurs du registre d’état sur la pile ; IP et les indicateurs à partir de la pile, ce qui permet de

met l’indicateur IF à 0 (masque les interruptions suivantes) ; reprendre le programme qui avait été interrompu.

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 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