You are on page 1of 9

Interruptions

TRAITEMENT DES EVENEMENTS PAR


INTERRUPTION
1-

QUELQUES CONSIDRATIONS GNRALES AUTOUR DES PRINCIPES ET DES CONCEPTS : .....................................1


Les vnements du point de vue global...........................................................................................................1
2- LES INTERRUPTIONS DANS LE SYSTME PROCESSEUR .....................................................................................2
3- MISE EN RELATION DU PROGRAMME AVEC L'INTERRUPTION : LA VECTORISATION. ..........................................2
4- LE TRAITEMENT PAR INTERRUPTION, SAUVEGARDE DU CONTEXTE .................................................................3
Mcanisme du traitement d'une IT, point de vue processeur...........................................................................4
Remarques :...................................................................................................................................................4
Une hirarchie dans le traitement des interruptions.......................................................................................5
L'initialisation................................................................................................................................................5
5- QUELQUES CONSIDRATIONS SUR LES IT MATRIELLES .................................................................................5
Les vnements qui crent des IT dans les composants priphriques ............................................................5
Comment est fourni le numro de vecteur au processeur ? .............................................................................6
6- ARCHITECTURE CENTRALISE. LE CONTRLEUR D'IT GRE LES N DE VECTEURS...........................................6
Remarque sur la valeur du N de vecteur :.....................................................................................................6
7- ARCHITECTURE RPARTIE, LA PRIPHRIE FOURNIT LE N DE VECTEUR. ........................................................7
Remarque sur la valeur du N de vecteur :.....................................................................................................7
8- LA GESTION DES PRIORITS DANS LES DEMANDES D'INTERRUPTION MATRIELLES ...........................................8
9- IT CONCEPTS ..............................................................................................................................................9

1- QUELQUES CONSIDERATIONS GENERALES AUTOUR DES PRINCIPES ET DES CONCEPTS :


Le traitement par interruption est un moyen propos dans les systmes processeurs pour
associer un programme spcifique un vnement. La rponse l'vnement est l'excution
d'un programme qui est adapt la situation.

Les vnements du point de vue global


Le systme de traitement est charg de grer une application.
Le couplage entre le systme processeur et l'application est ralis par le module d'change
qui est constitu par des composants priphriques pour assurer la fonction Entres-Sorties.

Composant
priphrique

Evnements

APPLICATION
Processeur

Demande
d'interruption

Programme

Systme processeur

David SAINT-MELLION

page 1/9

Interruptions
L'application cre les situations particulires, des vnements, qui demandent un traitement
spcifique. Dans les composants priphriques, les vnements de l'application sont accueillis
et transforms en demande d'interruption au processeur qui lie et excute un programme.

2- LES INTERRUPTIONS DANS LE SYSTEME PROCESSEUR


Les demandes d'interruption au processeur, sont de 4 sortes.

Les demandes issues des composants priphriques : Ce sont des interruptions


matrielles. C'est la rponse du systme de traitement aux vnements crs par
l'application.
Les demandes dont le logiciel est l'auteur : Il y a des instructions spcifiques qui se
traduisent par une interruption. Elles sont utilises pour raliser des appels au systme
d'exploitation. On peut y ajouter la division par la valeur zro qui peut ncessiter, en
fonction du contexte o cette valeur apparat, un traitement propre.
Les erreurs : Il faut que le systme ait un comportement dtermin quand se manifestent
des dfaillances. Les causes peuvent se trouver dans l'excution d'instruction dont le
processeur ne connat pas le code, des erreurs d'adresses lies un dfaut d'alignement
Adresses/Donnes dans les processeurs d'au moins 16 bits, les dfauts de cycle bus ...
Les demandes associes aux outils de mise au point : trace, points d'arrt......
Eventuellement l'initialisation : dmarrer le systme cre un vnement qui justifie un
traitement particulier. C'est la premire interruption que traite le processeur et laquelle il
ne peut pas se soustraire.
Programme IT1

L'initialisation
Des instructions
Les demandes
de la priphrie

Le processeur

Programme IT2

Les erreurs

Evnement

Demande IT

Le processeur associe
un programme particulier

Programme ITn

3- MISE EN RELATION DU PROGRAMME AVEC L'INTERRUPTION : LA VECTORISATION.


A une demande d'interruption le processeur excute le programme appropri. Il doit donc
connatre l'adresse de ce programme. Le processeur dispose d'un mcanisme : la
vectorisation, qui lui permet d'associer une demande d'interruption le programme
correspondant.
A chaque interruption correspond une position mmoire o se place l'adresse du programme
associ. L'ensemble de ces adresses constitue la table des vecteurs. On appelle Numro de
vecteur la position dans la table o se trouve l'adresse du programme d'interruption. Cette
valeur est code sur 8 bits. Dans les processeurs x86 et 68xxx cette table se situe dans la
partie basse de l'espace mmoire.

David SAINT-MELLION

page 2/9

Interruptions
L'association interruption et programme repose sur un adressage indirect. Un vecteur est
ladresse o se trouve ladresse du programme dIT (Voir en annexe la table des vecteurs des
processeurs 68xxx et x86)

Le numro de vecteur pour les interruptions matrielles est une donne qu'il faut fournir au
processeur. Pour les autres interruptions, il est dtermin par le processeur.
Exemple :
Soit une interruption dont le programme
d'IT se situe l'adresse 20000h. Le N de
vecteur est 0.

Programme IT

20000h

Lorsque l'IT se produit le processeur se rend


l'adresse correspondant au N de vecteur 0
et charge le compteur programme avec la valeur
20000h. Il excute alors le programme en
rponse la demande d'It.

Table des vecteurs

20000h

adresse du programme
It N de vecteur 0

Une adresse est code sur 4 octets dans les processeurs 68xxx et x86. Il faut
rserver 4 octets pour stocker ladresse du programme d'IT dans la table des
vecteurs. La relation entre le vecteur et le N de vecteur est :
Vecteur IT = 4x N de vecteur.

4- LE TRAITEMENT PAR INTERRUPTION, SAUVEGARDE DU CONTEXTE


Une demande d'interruption peut apparatre alors que le processeur excute un programme (ce
programme est appel par la suite programme courant). Le processeur interrompt l'excution
de ce programme courant pour rpondre la demande d'interruption en excutant le
programme associ l'interruption. Lorsque ce programme est totalement droul, le
processeur reprend le traitement du programme courant. Le processeur, pour effectuer cette
reprise, doit obtenir l'adresse de reprise du programme courant. Cet lment n'est pas
suffisant. Il faut aussi restituer le contenu des registres au processeur relatif l'excution du
programme courant. Une zone mmoire particulire, appele la pile, est utilise pour cette
opration.
Lorsque qu'une interruption apparat, le processeur sauve les donnes du contexte dans la
pile. Il conserve l'adresse de ces donnes dans un registre (pointeur de pile). A la fin du
droulement du programme propre l'interruption, le processeur excute une instruction
particulire "Restitution du contexte". Il prlve alors les donnes dans la pile pour les affecter
aux registres du processeur et ainsi reprendre le traitement du programme courant.
Le mcanisme de traitement des interruptions est organis, afin que la suspension de
l'excution d'un programme en rponse une demande d'interruption, soit transparente pour le
programme courant.

David SAINT-MELLION

page 3/9

Interruptions

Mcanisme du traitement d'une IT, point de vue processeur


Il excute le programme courant.
Une Interruption se manifeste.
Il sauve le contexte dans la pile.
Il va dans la table des vecteurs chercher l'adresse du programme IT.
Il excute les instructions du programme IT.
Il rencontre l'instruction "Restituer le contexte".
Il charge les registres avec les donnes sauves dans la pile.
Il reprend le traitement du programme courant.

Processeur

Programme courant
Processeur IT

Contexte

Processeur

Table des vecteurs


@ program IT

Processeur

Pile
@

Processeur
Programme IT

Pile
Contexte

Restituer
Remarques :
Le contexte est constitu, au minimum, par l'adresse de l'instruction suivante et le contenu du
registre d'tat (tat du processeur qui est le rsultat des actions et oprations passes). Il est
laiss l'utilisateur, l'initiative de sauver et de restituer les valeurs contenues dans les autres
registres. Ces oprations sont ralises dans le programme IT.
Chaque processeur dispose d'une instruction "Restituer le contexte".
Le processeur 68xxx utilise l'instruction RTE.
Le processeur x86 utilise l'instruction IRET.
Nous pouvons mesurer l'importance de la mmoire pour le traitement des interruptions. Elle
peut tre dcoupe en 3 parties :

La table des vecteurs zone mmoire o le processeur peut acqurir les adresses des
programmes associs aux diffrentes interruptions. C'est une zone accessible en
lecture (*). Son emplacement est fix par le constructeur du processeur (si elle n'est
pas translatable).
La pile : zone mmoire o le processeur peut sauver le contexte et y prlever les
valeurs pour le restituer. C'est une zone accessible en lecture et criture pour le
processeur. Son emplacement est fix par celui qui exploite le processeur.

David SAINT-MELLION

page 4/9

Interruptions

La zone programme : zone mmoire de stockage des instructions constituant le


programme propre aux interruptions. C'est une zone accessible en lecture (*). Son
emplacement est fix par celui qui exploite le processeur.
(*) Pendant la phase de traitement des interruptions.

Une hirarchie dans le traitement des interruptions


Que se passe t-il si une interruption apparat pendant le traitement d'un programme associ
une interruption ? Cela dpend. En effet les interruptions, pour un processeur donn, sont
hirarchises. Cette demande suspendra le droulement du programme IT en cours, si
l'interruption qui se manifeste, a une place plus importante dans la hirarchie que celle qui est
en cours de traitement. Voir en annexe l'organisation des priorits pour les processeurs 68xxx
et x86.

L'initialisation
Lors de la mise sous tension le processeur doit charger ses. Cette opration peut se raliser
partir d'une interruption. La vectorisation montre comment le processeur peut se lier un
programme. Une interruption est cre, par dtection de la prsence de l'alimentation ou
l'appuie sur un bouton de remise zro. Le processeur dispose d'une borne d'accueil RESET.
Le processeur commence donc son activit par l'excution d'un programme d'interruption. C'est
le cas des 68xxx o le vecteur d'initialisation se situe dans la partie basse de la table des
vecteurs (adresse 0).
Il est important de mettre rapidement jour le registre pointeur de pile dans la phase
d'initialisation qui est une donne fixe par l'environnement du processeur. Pour les
processeurs 68xxx, cette donne fait partie du vecteur d'initialisation. Pour les processeurs
xx86 elle doit s'effectuer par programmation.
L'initialisation d'un processeur x86 est ralise par adressage direct. Le processeur va
l'adresse (@ haute -Fh ) chercher la premire instruction qui est un saut (JMP).

5- QUELQUES CONSIDERATIONS SUR LES IT MATERIELLES


Le module d'change accueille des vnements qui trouvent leur source dans l'application.
Ces vnements au niveau des composants priphriques gnrent des demandes
d'interruptions matrielles vers le processeur du systme de traitement. Le numro de vecteur
doit tre fourni au processeur pour les interruptions d'origine matrielle.

Les vnements qui crent des IT dans les composants priphriques


Les vnements qui crent des demandes d'interruption trouvent leur origine dans un
changement d'tat ou l'apparition d'un tat. On peut rpertorier ces vnements pour les
grandes familles d'entres sorties :
Entre TOR Le changement d'tat sur une entre (transition 1-0
ou 0-1).
Timers Le passage par la valeur "0" du Dcompteur (Time Out).
Communication Emission, la donne est transmise (Registre mission vide).
Rception, une donne est prsente
(Registre rception plein).
Entres analogiques
La fin de conversion de la donne analogique
David SAINT-MELLION

page 5/9

Interruptions

Comment est fourni le numro de vecteur au processeur ?


Le processeur reoit une demande d'interruption de sa priphrie. Il lance une requte son
environnement en gnrant les informations lectriques ncessaires. Il attend que celui-ci lui
transmette la valeur du N de vecteur sur le bus donnes. Cette phase est lacquittement de
linterruption.

Demande IT

Processeur
Demande Nvecteur

N Vecteur

Evnement

Composant priphrique

Deux architectures sont possibles :


L'une centralise - Un bloc fonctionnel ddi fournit le N de vecteur
L'autre rpartie - Le composant priphrique ayant demand l'interruption fournit le N de
vecteur.

6- ARCHITECTURE CENTRALISEE. LE CONTROLEUR D'IT GERE LES N DE VECTEURS.


Cest larchitecture retenue pour les processeurs x86.

Demande IT

Demande IT

Processeur
Demande
N Vecteur

Et

N Vecteur (Bus donnes)

N Vecteur

Controleur d'IT

Evnement
Composant
Priphrique E/S

Un bloc fonctionnel centralise les N de vecteurs de la priphrie. C'est l'architecture retenue


dans les machines PC avec les processeurs INTEL x86. Ce bloc comprend des registres qui
supportent ces valeurs. Quand il reoit une requte du processeur, il dpose sur le bus
Donnes le N de vecteur relatif au composant qui a demand l'interruption. Il faut un lien entre
la demande d'interruption et le N de vecteur. Ceci conduit faire transiter, les demandes
d'interruptions issues des priphriques, par le bloc fonctionnel "Contrleur d'IT".

Remarque sur la valeur du N de vecteur :


Le N de vecteur dlivr est li au composant qui a cr lIT et non sa cause. Le programme
dIT doit scruter le composant pour connatre lorigine de lIT.
David SAINT-MELLION

page 6/9

Interruptions

7- ARCHITECTURE REPARTIE, LA PERIPHERIE FOURNIT LE N DE VECTEUR.


Cest larchitecture retenue pour les processeurs 68xxx.

Demande IT
Composant
Priphrique E/S

Processeur
Demande

Evnement

N Vecteur
N Vecteur (Bus donnes)

N Vecteur

Le composant qui a demand l'interruption fournit le N de vecteur quand le processeur lance


la requte son environnement. C'est, par exemple, l'architecture retenue pour les
processeurs 68xxx et leurs priphries. Le composant priphrique dispose :
d'un registre qui contient cette valeur (VR). Elle y est dpose par le programme
d'initialisation.
d'une borne qui reoit la requte du processeur (/IACK pour les priphriques 68xxx). Si
elle est active le composant priphrique dpose la valeur sur le bus "Donnes" bas D7-D0.
Il est exclu que deux composants priphriques dlivrent en mme temps leur N de vecteur. Il
est associ cette architecture un bloc fonctionnel lectronique qui aiguille la requte du
processeur vers le composant priphrique demandeur de l'interruption.

Remarque sur la valeur du N de vecteur :


Le N de vecteur dlivr est li la cause dinterruption. Lors de linitialisation du composant le
priphrique le registre VR reoit une valeur. Lors de la phase dacquittement de linterruption
le composant calcule le N de vecteur en fonction de la valeur dinitialisation de VR et de la
cause dIT et dlivre cette valeur au processeur.
Exemple :
Soit un Port dentre TOR qui gre 8 entres I7 - I0. Le composant dlivre le N de vecteur
comme suit :
Cause dIT
Offset
N Vecteur = Valeur dinitialisation de VR + Offset
I0
0
----I7
7
VR est initialis avec la valeur 80h.
LIT est produite par lentre I4.
Le N de vecteur dlivr aura pour valeur 84h.

David SAINT-MELLION

page 7/9

Interruptions

8- LA GESTION DES PRIORITES DANS LES DEMANDES D'INTERRUPTION MATERIELLES


Soit, N composants priphriques qui peuvent demander des interruptions. Si toutes les
interruptions apparaissent en mme temps, une seule ne doit aboutir au processeur. Les
demandes d'interruptions matrielles sont hirarchises. Dans ce but elles sont filtres avant
d'tre rpercutes au processeur. Plusieurs techniques sont possibles :
Soit, elles sont traites dans un encodeur de priorit. Un bloc fonctionnel "Encodeur de priorit"
collecte l'ensemble des demandes issues de la priphrie et ne transmet qu'une des
demandes au processeur.

IT priph 1
Demande IT
Processeur

Gestion des
priorits
IT priph N

Demande N vecteur

Soit, le cas d'un systme centralis pour grer les N de vecteurs, le contrleur d'IT gre les
priorits.
IT priph 1
Gestion des
priorits

Demande IT

Processeur

IT priph N

Gestion des
N Vecteurs
Demande N de vecteur
Controleur d'IT

Soit, lorsque plusieurs composants partagent une ligne de demande IT IRQ, les composants
sont chans (Day Chaining). Le composant de rang X est transparent pour la demande
d'interruption issue du composant de rang X+1, lorsque lui-mme ne demande pas
d'interruption.
La demande d'interruption du composant qui est tte de la chane est la plus prioritaire.

IRQ1
Demande
vers le processeur

David SAINT-MELLION

IRQN
Periph 1

Periph N

page 8/9

Interruptions

9- IT CONCEPTS
1.
2.
3.
4.

Quest quun vecteur ?


Qu'est ce qu'un N de vecteur ?
Qu'est ce que la vectorisation ?
L'adresse d'un programme est reprsente sur 4 octets. Un N de vecteur est cod sur 1
octet. Combien d'interruption peut traiter un processeur ? Quelle est la taille d'une table de
vecteur ? Quelle relation y a t-il entre le N de vecteur et le vecteur ?
5. O se situe l'adresse du programme d'interruption ?
6. Donnez la particularit d'un systme de traitement, organis autour d'un processeur, qui ne
disposerait pas de mmoire vive.
7. Que se passe t-il si un programme dIT crit dans la pile lors quil est excut ?
8. Soit un processeur 8086. Justifiez pourquoi place t-on une mmoire morte dans la partie
haute de la zone mmoire. Justifiez la position de la zone BIOS dans un PC.
9. Le systme informatique machine PC comprend Le Bios. Il est notamment constitu des
programmes d'interruptions caractristiques de la machine. Le systme d'exploitation est
stock sur une mmoire de masse. O se trouvent les programmes relatifs aux
interruptions cres au niveau des entres sorties sries, du clavier... ? O se trouve le
programme de boot ? O se trouve le programme relatif au chargement du systme
d'exploitation ? Expliquez qui fournit les valeurs pour renseigner la table des vecteurs.
10. Les processeurs 68xxx disposent dun mode autovectoris pour acqurir le N de vecteur
et sacquitter dune IT dorigine matrielle. Justifiez ce mode de fonctionnement.
11. Soit un composant dentres sorties sries. Il gnre les interruptions Registre rception
plein et Registre mission vide . Les programmes de traitement associs sont Lire
rception et Ecrire dans mission . Donnez le principe dimplantation de ces deux
programmes dans un environnement x86 et 68xxx.
12. Soit un systme informatique qui est install. Expliquez comment vous pouvez connatre la
premire adresse et la dernire adresse des programme dIT.
13. On veut changer le programme de traitement dune IT. Le programme initial rside en
mmoire morte. Le nouveau programme rside en mmoire vive et ladresse de la
premire instruction est connu. Donnez les diffrentes manires de procder.

David SAINT-MELLION

page 9/9

You might also like