You are on page 1of 21

INTERRUPTIONS

Une interruption est une procdure qui permet de suspendre l'excution d'un programme au profit d'un autre, avec la possibilit de reprendre l'excution du programme initial l o il avait t suspendu

Programme Principal

Programme dinterruption

Demande dinterruption

Programme interrompu

Reprise du programme interrompu

Fin

Interruptions matrielles
RESET R-initialisation du microprocesseur. NMI Non Masquable Interrupt. FIRQ Fast Interrupt Request. IRQ Interrupt Request.

Interruptions logicielles
SWI SWI2 SWI3
(software interupt)

Traitement des interruptions

Le traitement dune interruption se fait selon un protocole bien tabli Ds la mise au niveau bas de la broche dinterruption , ou bien ds la rencontre de linstruction SWI, le microprocesseur entame une "procdure implicite", programme dans la silice, Il faut remarquer que chaque procdure doit se terminer par un chargement du PC avec la valeur contenue dans le vecteur de linterruption demande. Ceci provoque un saut ladresse correspondante.

Traitement des interruptions


Dans un systme simple et fig, o la demande dinterruption ne peut provenir que dune seule source, et o lon nenvisage quun seul programme dinterruption, il est possible dimplanter directement le dbut de ce programme ladresse contenue dans le vecteur dinterruption. La sortie de la procdure implicite aboutira directement lexcution du programme. Dans ce cas gnral o plusieurs "utilisateurs" peuvent demander linterruption et o un "utilisateur" au moins veut pouvoir choisir entre plusieurs programmes dinterruption diffrents, la procdure implicite doit aboutir dabord un programme de gestion de linterruption.

Il existe trois modes d interruptions:


1) Mode simple: Un seul priphrique est susceptible de demander une interruption 2) Mode multiniveaux : dans ce cas plusieurs priphriques peuvent demander une interruption. Il est donc necessaire didentifier le priphrique demandeur. On a donc deux possibilits: -- le processeur possde plusieurs entres dinterruptions en nombre suprieur celui des priphriques avec un ordre de priorit. -- Test des bits dtat : lorsque plusieurs dispositifs sont branchs sur la mme ligne dinterruption, on attribue chacun deux un niveau de priorit. Quand le systme microprocesseur reoit une demande dinterruption, il termine linstruction en cours puis effectue un sondage pour determiner le priphrique prioritaire. 3) Mode interruptible vectoris : la gestion des interruptions est ralise par un dispositif dinterruption appel : contrleur de priorit dinterruption

Pour le P 6809, on a le contrleur de priorit 6828 de la famille motorola

Il existe deux types dinterruptions : masquables et non masquables

Les interruptions masquables


Le P possde un registre dtat de huis bits. Il est aussi appel registre code conditions(CCR). Ce registre rassemble des bits dtat ou indicateurs qui sont de precieuses informations rsultant dune instruction. Ainsi le but I(b4) du registre dtat du processeur indique si une interruption masquable sera prise en compte ou non.

Remarque : Le bit I est appel masque dinterruption.

Linterruption IRQ\
Le processeur 6809 possde une broche dinterruption masquable IRQ\ (Interrupt request).un niveau zro sur cette entre provoque, aprs excution de linstruction en cours, le test du masque dinterruption I. si le masque est 1 (I=1) la demande dinterruption est ignore.Si ce masque a t pralablement mis zro par linstruction CWAI ou AND cc # .. Le P excute la squence suivante: Sauvegarde des registres internes du P dans le pointeur de pile systme S, et cela aprs positionnement du bit E 1; Positionne le masque dinterruption I 1, ce qui inhibe les demandes dinterruption sur lentrre IRQ\; Le P recherche les vecteurs dinterruption, ce qui correspond la combinaison BA=0 et BS=1 (phase reconnaissance dinterruption); Chargement dans le compteur de programme (PC) du contenu des positions mmoires dadresses FFF8 et FFF9 ou lutilisateur aura pralablement rang ladresse du sous programme dinterruption excuter. Le processeur se branche alors ce programme de traitement de linterruption IRQ\.

Remarques: 1. La demande dinterruption est prise en compte si le masque I est positionn zro. Le sauvegarde des registres internes du processeur dans le pointeur de pile systme S se fait selon lordre suivant: - PC - Registre dindex - Accumulateurs - registre dtat. 2. Contenu de FFF8 = Poids fort de ladresse du programme de traitement dinterruption et contenu de FFF9 = Poids faible de ladresse du programme de traitement dinterruption

.
3. Linterruption IRQ\ du P 6809 est une interruption matrielle.

Linterruption FIRQ\

FIRQ\

Fast Interrupt Request

Cest une interruption matrielle qui est plus prioritaire et rapide par rapport celle IRQ\. Cest une interruption masquable par le bit F(b6)du registre code condition (CCR). Le mcanisme de traitement de cette interruption est le suivant:

Remarques: 1. Le P se trouve dans lobligation de traiter des interruptions trs rapidement. Ltat de sauvegarde des registres internes prends du temps. Cest la raison pour laquelle le P ne sauvegarde que le PC et le CCR lors de lexcution de FIRQ\. 2. Lutilisateur peut sauvegarder dans la pile dautres registres que le PC et le CCR par programme (instruction PSHS). 3. Ltat de sauvegarde dans la pile des registres PC et CCR lors de lexcution dune interruption FIRQ\ se fait comme suit: PCL SP-1 PCH SP-2 CCR SP-3

La mmoire du P est une mmoire LIFO (last in first out), la dernire information rentrante est celle qui sort la premire. 4. Les interruptions matrielles FIRQ\ et IRQ\ sont des entres collecteur ouvert. Elles supportent donc la liaison avec plusieurs lments extrenes, il ne faut surtout pas oublier les rsistances de rappel de courant.

5. Les interruptions FIRQ\ et IRQ\ sont mmorises tant que ces entres sont au niveau zro. Elles sont alors toutes excutes par le P.

Les interruptions non masquables


Linterruption NMI\

Une entre spciale NMI\ active sur le niveau bas est prvue sur le P
NMI Non Masquable interrupt Les interruptions non masquables sont plus prioritaires que celles masquables. Dans ce cas, linterruption est prise en compte quelque soit ltat des masques I et F du registre dtat du P. Le mcanisme de prise en compte de cette interruption est le suivant:

Linterruption NMI\

Une entre spciale NMI\ active sur le niveau bas est prvue sur le P NMI Non Masquable interrupt Les interruptions non masquables sont plus prioritaires que celles masquables. Dans ce cas, linterruption est prise en compte quelque soit ltat des masques I et F du registre dtat du P.

Le mcanisme de prise en compte de cette interruption est le suivant:

Remarque:
Linterruption NMI\ sert particulirement sauvegarder les registres internes du P en cas de problme de coupure dalimentation. Elle est rarement utilise pour les changes entre le P et lenvironnement extrieur.

Linterruption RESET\
Cette interruption est la plus prioritaire du systme. Elle est active sur un niveau bas, ce qui entrane linitialisation complte du P
la procdure de ralisation de linterruption RESET\ est la suivante:

Les interruptions logicielles : (Software) Linterruption logicielle SWI (software Interrupt)


La prsence de linstruction SWI dans un programme impose larrt de lexcution de celui-ci. Ainsi le processeur ralise un certain nombre de squences internes,avant dexcuter le programme de traitement de linterruption relatif SWI. Le mcanisme de traitement de cette interruption est le suivant:

REMARQUE: Linterruption SWI est plus prioritaire que celles FIRQ\ et IRQ\. Son traitement impose le masquage de ces dernires.

Interruptions logicielles SWI2 et SWI3

Ce sont deux interruptions caractre logiciel. Elles ont un fonctionnement identiques,et peuvent tre interrompues par toutes les autres interruptions du processeur 6809. Ce sont les interruptions les moins prioritaires; Leur mcanisme de traitement est identique celui de SWI, sauf que les masques dinterruptions ne sont pas positionns a ltat inactif

Remarque:
Dans le cas dun Kit microprocesseur ralis avec le 6809 le programme de service appel moniteur utilise linstruction SWI pour visualiser le contexte et donner le contrle des oprations au moniteur

Les interruptions de synchronisation


Pour finir, le microprocesseur peut se mettre en attente d'vnements extrieurs afin de synchroniser son volution sur l'apparition de ces derniers. Il y a une "pr-sauvegarde" complte du contexte. Pour cela, on trouve les instructions suivantes : CWAI (attente d'interruption). SYNC (attente de synchronisation).

You might also like