Vous êtes sur la page 1sur 7

Cours Archi II Dr.

Mohamed FEREDJ 2


















Cours Architecture des ordinateurs (Archi II)
INTERRUPTIONS
Resp. Mr Mohamed Feredj MCA
Courriel : archiFeredj@gmail.com




























Cours Archi II Dr. Mohamed FEREDJ 3
1) Dfinition de linterruption

1. Est un vnement non prvu (asynchrone) provoquant la suspension de lexcution du
programme en cours par le P pour traiter la cause ayant dclench dudit vnement;
2. Sert traiter les vnements asynchrones ;

2) Une interruption fait quoi ?

1. Suspend lexcution du programme en cours ;
2. Sauvegarde ltat (PSW, CS, et IP) de la machine pour la reprise de lexcution ;
3. Excute la tche dfinie pour cette interruption ;
4. Restaure ltat (PSW, CS et IP) de la machine sauvegard. Le retour au programme
interrompu se fait par IRET ;
5. Reprend lexcution du programme interrompu.


3) Types dinterruptions

1. Interruption matrielle (externe) : Elle prvient le P dvnements externes.
Exemple : Top Horloge (Timer), Touche clavier presse, etc.

Tout dpend du type de P, ce type dinterruption est reu :
- Par le P 8O86 sur la broche (ligne) INTR ;
- Par dautres P sur lune des broches INT0, INT1 ou INT3.
Dans le module systme, ce type est appel Interruption.

2. Interruption logicielle (interne) : Elle est dclenche suite lexcution dune
instruction dappel dune interruption systme.
Exemple : instruction INT ; instruction read (en pascal), etc
Dans le module systme, ce type est appel Appel au Superviseur (SVC).

3. Exception (interne) : Suite une erreur dexcution
Exemple : Division par zro, etc.
Dans le module systme, ce type est appel Droutement.



Plusieurs causes de dclenchement des interruptions Vectorisation des interruptions
.
.
.
.
.
.
.
.
.
.
.
Prg. Princ

.
.
.
.
.
IRET
ProgInterr
Cours Archi II Dr. Mohamed FEREDJ 4

4) Vectorisation des interruptions :
Suivant larchitecture dIntel :
1. Les interruptions sont classes dans une table de 256 entres (du 00H 0FFH),
appele Vecteur dinterruptions.
2. Chaque entre occupe 4 octets et contient l@ du programme associ linterruption :
IP puis CS.
3. Cette table est place dans la M.C l@ 00H et termine l@ 3FFH.

Donc, la structure de la table est




La table dinterruptions regroupe 3 catgories dinterruptions :
1. Interruptions rserves par Intel, savoir, lint 0, int 1, etc.
2. Interruptions rserves par le systme dexploitation, savoir lint print screen, int
timer, etc.
3. Interruption rserves lutilisateur afin quil puisse dfinir ses propres interruptions
suivant ses besoins.











IP
0

CS
0

IP
1

CS
1

.
.
.
.
.
IP
255

CS
255

M.C
15 0
Vect 0
Vect 1
Vect 255
Pour la div / zro
Pour lexcution pas pas
Vect5 pour print screen
Vect8 pour le timer (horloge)
Vect9 pour le clavier
Cours Archi II Dr. Mohamed FEREDJ 5
5) Broches de rception des interruptions matrielles:
Le P 8086 comporte 3 broches pour dialoguer avec les demandeurs dinterruptions
matrielles : INTR, INTA* (* = NOT) et NMI:










5.1) Broche INTR (INTerrupt Request):
A chaque fois quun matriel (priphrique) effectue une demande
dinterruption, INTR passe ltat actif, c--d INTR=1.
Les demandes dinterruption INTR ne sont prises en compte par le P que si le
flag IF = 1.
5.2) Broche INTA* (INTerrupt Acknowledge):
Si la demande dinterruption reue sur INTR est accepte, le P envoi
lacquittement (confirmation dacceptation) de cette demande dinterruption sur la
ligne INTA*, en injectant un 0 (INTA* = 0). Cela permet aux priphriques de savoir
si leur demande dinterruption t accepte ou non par le P.
5.3) Broche NMI (No Maskable Interrupt) :
Cette broche permet de signaler au P toute dfaillance au niveau de la
mmoire centrale ou autres erreurs.
Lorsquelle survienne, linterruption NMI est reue sur la broche NMI et est
toujours prise en compte (ltat du Flag IF na aucun effet sur la broche NMI).

Remarque
IF = 0 na aucun effet sur les interruptions logicielles.

5.4) Broche RESET:
Cette broche permet de redmarrer lordinateur. Quand cette broche est active,
le P effectue les oprations fixes suivantes:
PSW 0000h
IP 0000h
CS FFFFh
DS 0000h Branchement ladresse FFFF0h (BIOS)
SS 0000h
ES 0000h

18

17 24
8086


21
INTR
NMI
RESET
INTA*
Cours Archi II Dr. Mohamed FEREDJ 6
Trace dexcution suite un appel dune interruption :

NOM MNEMONIQUE TRACE
Appel dinterruption INT type SP SP-2
[SS:SP] PSW
SP SP-2
[SS:SP] CS
SP SP-2
[SS:SP] IP
IF = TF = 0
IP [Type*4]
CS [Type*4+2]


Trace dexcution suite un retour dinterruption :

NOM MNEMONIQUE TRACE
Retour dinterruption IRET IP [SS:SP]
SP SP+2
CS [SS:SP]
SP SP+2
PSW [SS:SP]
SP SP+2


Exemple:
La prochaine instruction dans un programme en cours dexcution se trouve l@
0900 :00A0 et est de la forme INT 8.
Aprs lexcution de linstruction prcdant INT 8, ltat de des registres SP, SS et PSW est
le suivant :

SP = 0100H, SS = 0300H, PSW = 0240H

Et ltat de la mmoire est :
ADRESSE CONTENUE
. .
0001EH 0010H
00020H 0040H
00022H 0100H
00024H 0105H
..
000A0H 0200H
000A2H 000EH
000A4H 0300H


Question :
Dterminer les valeurs de SP, SS, IP et CS, et donner la trace de la pile juste aprs lappel de
INT 8 et avant sa fin ?
Cours Archi II Dr. Mohamed FEREDJ 7
Daprs les noncs de cet exemple, on a CS = 0900H et IP = 00A0H qui sont l@ physique
de INT 8.
Donc, aprs lappel de cette interruption, on doit reprendre lexcution partir de l@ IP
00A2H.



Les nouvelles valeurs de CS et IP sont :
IP = (8*4) = (00020H) = 0040H
CS = (8*4) + 2 = (00022H) = 0100H


6) Etapes de traitement dune interruption matrielle:
Les tapes de traitement dune interruption matrielle.
1. Un priphrique envoi une demande dinterruption vers le P travers
la broche INTR;
2. Si IF = 1, le P accepte la demande dinterruption par lactivation de la
ligne INTA la fin de linstruction en cours;
3. Le numro N de linterruption est envoy au P travers le bus de
donnes;
4. Le contexte de retour (PSW, CS et IP) est sauvegard dans la pile;
5. Les flags IF et TF du registre PSW sont mis zro;
6. Chargement des registres IP et CS partir de la table des interruptions:
IP + [4*N]
CS + [4*N+2]
7. Commencement de lexcution de la routine dinterruption;
8. IRET provoque la restitution des valeurs de IP, CS et PSW se trouvant
dans la pile pour le retour au programme suspendu.






SS=0300H:SP=0100H




00A2H

0900H
0240H
PILE
15 0
SP=00FEH
SP=00FCH
SP=00FAH
Cours Archi II Dr. Mohamed FEREDJ 8

















CPU


D0-D7

INTR

INTA
IP
CS
PSW

Circuit
Interface
Interrupt
BD BC B@
Priph
Tables de V. IT


Nouveau IP
Nouveau CS

Ancien IP
Ancien CS
Ancien PSW

PILE
Mmoire


Programme
interrompue

Routine
dIT






IRET
C
C
C


C
C
C