Вы находитесь на странице: 1из 10

Les interruptions

Quand un organe d’entrée-sortie a besoin d’un service, il envoie une impulsion sur la
ligne d’interruption du microprocesseur. Ce dernier termine l’instruction en cours, ensuite
il se branche à un sous-programme d’interruption. Ceci entraîne la sauvegarde de l’état
partiel ou total du µp.
Pour faciliter la compréhension d’une interruption d’un µp, imaginez à titre
d’exemple qu’au cours du travail, vous êtes appelé au téléphone ; vous répondez au
téléphone en consultant éventuellement d’autres dossiers, puis vous revenez reprendre
votre tâche exactement au point où vous l’aviez laissée.
Une interruption peut survenir à n’importe quel instant par rapport au déroulement
du programme. On dit qu’elle asynchrone au programme.

Interruptions matérielles
Le 6809 possède trois interruptions matérielles exécutables (NMI, IRQ,FIRQ)
pendant le déroulement d’un programme plus une entrée d’initialisation (RESET) qui est
traitée comme l’interruption la plus prioritaire du système.

Reset

Interruption NMI (Interruption Non Masquable)

L’interruption NMI ne peut pas être masquée par le programmeur. Elle est employée
en cas d’urgence comme par exemple, une défaillance d’alimentation (sauvegarde dans une
mémoire CMOS alimentée par pile). Cette interruption est la plus prioritaire des
interruptions matérielles du 6809. Un front descendant sur l’entrée NMI provoque une
séquence d’interruption non masquable. La figure n° montre les différentes phases de cette
séquence.
L’adresse de départ du sous-programme de traitement de NMI doit être logé aux adresses
mémoires FFFC :FFFD (octet haut dans FFFC, octet bas dans FFFD)
Lors d’une reconnaissance de NMI, l’état complet du µp est sauvegardé dans la pile
système à l’exception du pointeur S. L’instruction de retour d’interruption (RTI) doit être
exécutée à la fin du sous-programme de traitement. Cette instruction extrait le registre

KARIM Mohammed FSDM Fès Page 1 04/12/2007


d’état de la pile système. Si le bit E est égal à 1, l’état complet du µp est alors dépilé; dans
le cas contraire, seuls le PC et le registre d’état sont dépilés.

NMI ↓

1→E

Sauvegarde des registres dans la pile Système

Espace Contenu de
1→ I
Mémoire S
1→F

CC ssss - C
A ssss - B
0 → BA
1 → BS B ssss -A
DP ssss - 9
X-haut ssss - 8
X-bas ssss - 7
Recherche du vecteur NMI
contenu dans FFFD : FFFC Y-haut ssss - 6
Y-bas ssss - 5
U-haut ssss - 4
U-bas ssss - 3
0 → BS
PC-haut ssss - 2
PC-bas ssss - 1
ssss
Exécution du sous programme de
NMI

KARIM Mohammed FSDM Fès Page 2 04/12/2007


1 : Un front descendant de NMI est pris en compte à la fin de l’instruction en cours.
2 : Le processeur positionne le bit E à 1 pour indiquer qu’il va faire une sauvegarde totale de l’état du
6809 dans la pile système.
3 : Tous les registres du 6809 sont sauvegardés ç partir de l’adresse contenue dans S moins un (ssss - 1)
dans l’ordre indiqué à la figure.
4 : Les interruptions matérielles sont masquées. Les signaux IRQ et FIRQ n’ont plus d’influence.
5 : Le processeur indique à l’environnement externe qu’il recherche un vecteur d’interruption
6 : Le contenu des adresses FFFC et FFFD est pris en compte par le 6809
7 : Le fonctionnement redevient normal. Le PC contient l’adresse du sous-programme de NMI.
8 : Le 6809 exécute le sous programme de NMI

Interruption IRQ (Interruption normale)

L’interruption IRQ est une interruption masquable. Quand une IRQ survient et que le bit I
est à zéro (interruption IRQ non massquée), tous les registres internes (excepté S) sont
empilés dans la pile système. L’adresse de départ du sous-programme de traitement de IRQ
est cherchée aux emplacements mémoires FFF8 :FFF9 (octet haut dans FFF8, octet bas
dans FFF9).
Le sous-programme de traitement se termine par l’instruction RTI qui dépile le registre
d’état de la pile système. Si le bit E est égal à 1, l’état complet du µp est alors dépilé; dans
le cas contraire, seuls le PC et le registre d’état sont dépilés.

La figure n° montre le séquencement des opérations internes du 6809 lors d’une détection
d’un niveau bas sur l’entrée IRQ.

KARIM Mohammed FSDM Fès Page 3 04/12/2007


IRQ ↓ ↑

I=0

oui
Continue l’exécution
1→E du programme en
cours

Sauvegarde des registres dans la pile Système


Espace Contenu de
Mémoire S

1→ I CC ssss - C
A ssss - B
B ssss -A
DP ssss - 9
0 → BA
1 → BS X-haut ssss - 8
X-bas ssss - 7
Y-haut ssss - 6
Recherche du vecteur IRQ Y-bas ssss - 5
contenu dans FFF8 : FFF9 U-haut ssss - 4
U-bas ssss - 3
PC-haut ssss - 2
0 → BS PC-bas ssss - 1
ssss

Exécution du sous-programme de
IRQ

KARIM Mohammed FSDM Fès Page 4 04/12/2007


1 : Un niveau bas sur IRQ est pris en compte à la fin de l’instruction en cours.
2 : Le processeur teste le bit I du registre d’état. Si I=1, l’interruption IRQ est masquée, le processeur
continue l’exécution du programme. Si I=0, le programme est arrêtée, le processeur traite l’interruption
IRQ.
3 : Le bit E à 1 pour indiquer qu’il va faire une sauvegarde totale de l’état du 6809 dans la pile système.
4 : Tous les registres du 6809 (sauf S) sont sauvegardés ç partir de l’adresse contenue dans S.
5 : Les autres interruptions matérielles IRQ sont masquées. FIRQ est toujours valide puisque prioritaire
sur IRQ.
6 : Le processeur indique à l’environnement externe (BA=0 et BS=1) qu’il recherche un vecteur
d’interruption
7 : Le contenu des adresses FFF8 et FFF9 est pris en compte par le 6809
8 : Le fonctionnement redevient normal (BS=0) Le PC contient l’adresse du sous-programme de IRQ.
9 : Le 6809 exécute le sous programme de IRQ

Interruption FIRQ (Interruption rapide)

Le fonctionnement de l’interruption FIRQ est identique à celui de IRQ sauf qu’elle plus
rapide car elle ne sauvegarde que 3 octets : PC (deux octets) et CCR (1 octet) au lieu de 12.
D’où un gain de temps de neuf cycles d’horloge (1 cycle d’horloge par cycle sauvegardé).
L’interruption FIRQ est plus prioritaire que IRQ. Quand une FIRQ survient et que le bit F
est à zéro (interruption FIRQ non massquée), seuls PC et CCR sont empilés dans la pile
système. L’adresse de départ du sous-programme de traitement de FIRQ est cherchée aux
emplacements mémoires FFF6 :FFF7 (octet haut dans FFF6, octet bas dans FFF7).
L’instruction RTI restaure le registre d’état et le PC du programme interrompu.
La figure n° montre le séquencement des opérations internes du 6809 lors d’une détection
d’un niveau bas sur l’entrée FIRQ.

KARIM Mohammed FSDM Fès Page 5 04/12/2007


FIRQ ↓ ↑

F=0

oui
Continue l’exécution
0→E du programme en
cours

Sauvegarde des PC et CCR dans la pile Système


Espace Contenu de
Mémoire S

1→ I 1→ F CC ssss - 3
PC-haut ssss - 2
PC-bas ssss - 1
ssss
0 → BA
1 → BS

Recherche du vecteur FIRQ


contenu dans FFF6 : FFF7

0 → BS

Exécution du sous-programme de
FIRQ

KARIM Mohammed FSDM Fès Page 6 04/12/2007


1 : Un niveau bas sur FIRQ est pris en compte à la fin de l’instruction en cours.
2 : Le processeur teste le bit F du registre d’état. Si F=1, l’interruption FIRQ est masquée, le processeur
continue l’exécution du programme. Si F=0, le programme est arrêtée, le processeur traite l’interruption
IRQ.
3 : Le bit E à 0 pour indiquer qu’il va faire une sauvegarde partielle de l’état du 6809 (PC,CCR) dans la
pile système.
4 : Le compteur programme PC et le registre CCR sont sauvegardés ç partir de l’adresse contenue dans S.
5 : Les autres interruptions matérielles sont masquées.
6 : Le processeur indique à l’environnement externe (BA=0 et BS=1) qu’il recherche un vecteur
d’interruption
7 : Le contenu des adresses FFF6 et FFF7 est pris en compte par le 6809
8 : Le fonctionnement redevient normal (BS=0) Le PC contient l’adresse du sous-programme de FIRQ.
9 : Le 6809 exécute le sous programme de FIRQ

Interruptions logicielles
Mise à part les interruptions matérielles, le 6809 possède des interruptions
logicielles qui viennent du programme lui même. Ces interruptions servent à arrêter le
programme, exécuter le programme instruction par instruction, lecture ou écriture sur un
organe périphérique ………
Le 6809 possède 3 interruptions logicielles : SWI, SWI2, SWI3

Interruption SWI (Software Interrupt)

L’interruption SWI provoque l’arrêt due l’exécution d’un programme. La figure n° montre
le séquencement des opérations internes du 6809 lors de l’exécution de l’instruction SWI.

KARIM Mohammed FSDM Fès Page 7 04/12/2007


SWI

1→E

Sauvegarde des registres internes dans la pile Système

Espace Contenu de
1→ I
1→F Mémoire S

CC ssss - C
A ssss - B
0 → BA
1 → BS B ssss -A
DP ssss - 9
X-haut ssss - 8
X-bas ssss - 7
Recherche du vecteur NMI
contenu dans FFFA : FFFB Y-haut ssss - 6
Y-bas ssss - 5
U-haut ssss - 4
U-bas ssss - 3
0 → BS
PC-haut ssss - 2
PC-bas ssss - 1
ssss
Exécution du sous programme de
SWI

1 : SWI entraîne l’arrêt du programme en cours.


2 : Le processeur positionne le bit E à 1 pour indiquer qu’il va faire une sauvegarde totale de l’état du
6809 dans la pile système.
3 : Tous les registres du 6809 dans la pile
4 : Les interruptions matérielles IRQ et FIRQ sont masquées.
5 : Le processeur indique à l’environnement externe qu’il recherche un vecteur d’interruption
6 : Le contenu des adresses FFFA et FFFB est pris en compte par le 6809
7 : Le fonctionnement redevient normal. Le PC contient l’adresse du sous-programme de SWI
8 : Le 6809 exécute le sous programme de SWI

KARIM Mohammed FSDM Fès Page 8 04/12/2007


Interruption SWI2/SWI3 (Software Interrupt)

Les interruptions SWI2/SWI3 sont les moins prioritaires. Elles ont un fonctionnement
identique à SWI. La figure n° montre le séquencement des opérations internes du 6809 lors
de l’exécution de l’instruction SWI.

SWI2 SWI3

1→E

Sauvegarde des registres internes dans la pile Système

Espace Contenu de
1→ I
Mémoire S
1→F

CC ssss - C
A ssss - B
0 → BA
1 → BS B ssss -A
DP ssss - 9
X-haut ssss - 8
X-bas ssss - 7
Y-haut ssss - 6
Recherche du Recherche du
vecteur SWI2 vecteur SWI3
Y-bas ssss - 5
contenu dans contenu dans U-haut ssss - 4
FFF5 : FFF4 FFF3 : FFF2
U-bas ssss - 3
PC-haut ssss - 2
PC-bas ssss - 1
ssss
0 → BS

Exécution du sous Exécution du sous


programme de SWI2 programme de SWI3

KARIM Mohammed FSDM Fès Page 9 04/12/2007


KARIM Mohammed FSDM Fès Page 10 04/12/2007

Вам также может понравиться