Transcript vesrsion *

Gestion des événements, systémes d'interruptions

Les ordinateurs doivent réagir à des sollicitations externes et internes nommées généralement interruptions ou événements.

Ce chapitre contient :

.un glossaire des termes propres aux interruptions, .les systémes d'interruptions de trois microprocesseurs simples (§ 7.2), .quelques codeurs de priorités, .un complément relatif aux interruptions logicielles.

GLOSSAIRE COMMENTE EN GUISE D'INTRODUCTION

Demande d'interruption

: C'est la manifestation d'un périphérique, d'un organe interne, d'un processus. Elle a pour cause immédiate : · · · l'apparition d'un signal venant d'un périphérique informatique ou industriel, l'exécution d'une instruction ad hoc, la tentative d'exécution d'une instruction fautive ou d'une instruction inconnue ou encore · d'une erreur de calcul, l'apparition d'un signal interne : détection d'anomalie de fonctionnement, débordement · · d'adresse, un appel du processus au systéme d'exploitation, une opération d'entrée ou sortie,

· · un garde temps par la fin d'un intervalle de temps programmé, un message re₤u d'un autre processeur dans certains multiprocesseurs.

Cette demande est refusée ou acceptée. Interruption :

En conséquence de l'acceptation d'une demande, le processus en cours est interrompu. Une

sauvegarde

plus ou moins compléte de son

contexte

est faite par les mécanismes câblés, elle est complétée éventuellement par une sauvegarde programmée.

Masquage :

Le systéme, en tant qu'exécutant un processus, peut interdire la prise en compte d'une demande. Ceci se fait déjà systématiquement et universellement pendant l'exécution d'une instruction et peut ₨tre fait à la demande selon la capacité du matériel.

Exception :

Cette variante de vocabulaire désigne une interruption logicielle liée à une exécution fautive (par exemple division impossible, adressage hors segment etc.).

Hiérarchie et Priorité :

Une interruption cause une perte de temps, il est donc utile de n'accepter une demande d'interruption que si sa cause est prioritaire par rapport à celle qui a donné vie au processus en cours d'exécution. On utilise en général le mot priorité pour qualifier les causes, et hiérarchie pour désigner l'organisation des acceptations et des refus, vue par le processeur.

Invalidation :

Une invalidation fait disparaître la demande qui devra ₨tre émise à nouveau.

Masquage :

Le masquage rend la demande d'interruption inefficace mais la maintient.

Point d'entrée :

C'est le moyen d'introduire une demande d'interruption dans un circuit. Initialement, il s'agissait d'un fil sur le processeur, ce peut ₨tre une configuration de bits sur plusieurs broches, ou m₨me des broches et des configurations présentes sur un autre circuit dit contrôleur d'interruption.

Contexte (

contexte d'une tâche ou d'un processus) : La tâche ou le processus ont besoin de données pour reprendre son exécution aprés suspension, à tout le moins le compteur ordinal et le registre d'état, plus généralement tout ou partie des registres, de mémoires spécialisées comme la ram vidéo et de segments de mémoire si leur contenu peut ₨tre recouvert pendant la suspension.

Sauvegarde

(du contexte) : Cette opération toujours partiellement câblée place le contexte dans une pile (rapide), une zone de mémoire réservée (plus lent) ou encore sur support externe (trés lent).

Contrôleur d'interruption :

C'est un processeur hautement spécialisé dans la manipulation de registres relatifs aux interruptions : demandes et acceptations. Les contrôleurs sont internes au processeur ou externes sous la forme d'un boîtier additionnel.

Il est utilisé en cas de sources multiples externes. Il re₤oit les demandes dans des

Cascade :

Cette technique générale consiste à relier, s'ils ont été prévus pour cela, des codeurs de priorités identiques, chacun opérant un filtrage propre.

Vecteur d'interruption :

Traditionnellement, c'est un contenu logé dans un registre défini, spécial, général, compteur ordinal, ou un mot de mémoire. Ce contenu est associé à une ou à des demandes d'interruptions par des positions de bits ou des configurations. Il fait l'objet d'un traitement interprétatif. Ce peut ₨tre un simple pointeur.

Par exemple : si le contenant est le compteur ordinal, le résultat sera un branchement inconditionnel, si c'est un autre registre, un programme analysera ce contenu.

Scrutation :

Ce mot est employé dans deux sens : En temps réel industriel, il s'agit d'une interrogation des sources d'information externes par lecture périodique. Elle est faite par une tâche trés prioritaire. En systéme d'exploitation, il s'agit d'une tâche à trés haute priorité non interruptible par une classe de demandeurs. Elle contient un processus d'examen de ces demandes pour les prendre en compte sur décision calculée par elle-m₨me.

Tâche :

Ce terme désigne un programme, généralement court, activé par une interruption pour réaliser le traitement associé.

DESCRIPTION et COMPARAISON de SYSTEMES D'INTERRUPTIONS SIMPLES

Les systémes d'interruption sont devenus trés complexes. On a choisi trois processeurs de la m₨me génération dite des 8 bits. Ils présentent à eux tous la quasi totalité des types d'interruptions et des solutions existant pour les interruptions matérielles d'origine externe.

Microprocesseur Intel 8085

C'est un microprocesseur de 1976, à 8 bits de données, en technique N-MOS. Il posséde cinq points d'entrée physiques hiérarchisés, sous la forme de cinq broches sur le circuit.

TRAP

priorité la plus haute

RST7.5

RST6.5

RST5.5

INTR

priorité la plus basse On note deux types de fonctionnement différents relatifs : a) au groupe TRAP, RST7.5, RST6.5, RST5.5 b) à l'entrée INTR.

Dans le groupe a), lorsqu'un organe périphérique émet une interruption en portant simplement au niveau haut la ligne désirée, une tâche est exécutée par le chargement d'une adresse dans le compteur ordinal. Cette adresse de départ est fixée ne varietur : Pour TRAP adresse de départ : 24H Pour RST7.5 adresse de départ : 2CH Pour RST6.5 adresse de départ : 34H Pour RST5.5 adresse de départ : 3CH · · Dans le groupe b), entrée INTR, le microprocesseur ne fait pas seul le branchement à une adresse. Un autre circuit doit forcer sur le bus de données une des deux instructions dont les mnémoniques sont : RST (ne pas la confondre avec les noms des interruptions RSTX.Y), CALL.

L'instruction RST

a le format suivant : Son décodage placer le mot suivant de 16 bits : dans le compteur ordinal. L'effet est de lancer la recherche de l'instruction exécutable à cette adresse. Cette instruction donne donc accés à huit adresses. On peut dire que ces huit adresses, non consécutives, constituent une table de vecteurs d'interruption.

L'instruction CALL

a le format suivant : données, de les placer dans le compteur ordinal et de lancer la recherche d'instruction à cette adresse. Dans les deux types de fonctionnement, le compteur ordinal est préalablement sauvegardé par câblage, il est placé en mémoire au sommet de la pile pointée en permanence par le registre STACK POINTER. La gestion de cette pile nécessite beaucoup d'attention car la restitution correcte du contexte nécessite que tout empilement fait pendant la gestion de l'interruption soit dépilé. Les instructions CALL, CC, CM, CNC, CNZ, CP, CPE, CPO, CZ, PUSH utilisées pour la sauvegarde du contexte chargent la pile, Les instructions RET, RC, RM, RNC, RNZ, RP, RPE, RPO, RZ, POP la déchargent.

Microprocesseur Motorola 6800

C'est un microprocesseur de 1975, à 8 bits de données, en technique NMOS. Son systéme d'interruption a 3 points d'entrée nommés RES, NMI, IRQ. La prise en compte d'une interruption provoque l'arr₨t du programme courant et le branchement à l'adresse contenue dans des paires d'octets de mémoire d'emplacement fixe. pour l'interruption RES le contenu de FFFE et FFFF pour l'interruption NMI le contenu de FFFC et FFFD pour l'interruption IRQ le contenu de FFF8 et FFF9 Ces trois paires d'octets constituent la table des vecteurs d'interruptions. Aprés l'achévement de l'instruction en cours, une interruption est prise en compte en 12µs.

Point d'entrée RES

: reset Cette interruption provoque l'initialisation du processeur. Lorsque le niveau RES devient bas, le bus d'adresse est positionné avec FFFE. Lorsque le niveau RES redevient haut, le compteur ordinal est chargé avec le contenu des adresses FFFE et FFFF. Cette interruption est utilisée comme séquence de redémarrage aprés un défaut d'alimentation. Pour cette raison, il n'y a aucune sauvegarde de l'état du programme et du compteur ordinal. Cette interruption n'est pas masquable.

Point d'entrée NMI

: non-maskable interrupt. Comme son nom l'indique, elle non plus n'est pas masquable. Elle est reconnue lorsque la ligne passe au niveau logique zéro. Elle est utilisée pour la détection d'un défaut d'alimentation ou par un périphérique exigeant un traitement urgent de l'interruption. Hormis le fait qu'elle ne peut ₨tre masquée, cette interruption a un fonctionnement similaire à celui de IRQ. A la fin de l'instruction en cours, le processeur sauvegarde le compteur ordinal, les registres d'état et les accumulateurs dans la pile, puis positionne le masque d'interruption à "1" et lance la tâche à l'adresse contenue dans les octets d'adresses FFFC et FFFD.

Point d'entrée IRQ

: interrupt request. C'est le point d'entrée principal du systéme d'interruption. Les différentes sources d'interruption doivent ₨tre reliées en OU câblé sur IRQ. Les entrées proviennent généralement des circuits PIA (interfaces paralléles) ou ACIA (interfaces pour transmission asynchrones en série), mais peuvent aussi provenir de toute autre source définie par l'utilisateur.

Interruption logicielle (SWI)

Le fonctionnement de cette interruption est analogue à celui de l'interruption IRQ, si ce n'est qu'elle est déclenchée par logiciel, c'est-à-dire par l'exécution de l'instruction SWI. Le contenu du compteur ordinal, le registre d'état et les accumulateurs sont rangés dans la pile. Le masque d'interruption est mis à 1. Le programme d'interruption est exécuté, il est à l'adresse pointée par le contenu de [FFFA FFFB].

Microprocesseur Zilog Z80

C'est un microprocesseur de 1976, à données sur 8 bits, en technique N-MOS. Son systéme d'interruption a deux points d'entrée: NMI et INT hiérarchisés.

Point d'entrée NMI

: non maskable interrupt. Comme son nom l'indique, ce niveau n'est pas masquable, il a la plus haute priorité et il est toujours reconnu à la fin de l'instruction en cours d'exécution indépendamment de l'état du registre de validation d'interruption. Cette interruption provoque automatiquement le redémarrage à l'adresse 0066 H. Le compteur ordinal est sauvegardé dans la pile située dans une zone de mémoire quelconque pointée par le registre SP (stack pointer).

Point d'entrée INT

: interrupt request Ce niveau est reconnu à la fin de l'instruction en cours si le systéme d'interruption est validé. Les instructions DI et EI invalident et valident respectivement le systéme d'interruption. Elles positionnent les bascules IFF1 et IFF2 à 0 pour DI et à 1 pour EI. Sur ce point d'entrée INT, on définit par programme trois modes différents de fonctionnement des interruptions : -

Mode 0

: celui d'INTR du 8085 -

Mode 1

: branchement en 0038 H -

Mode 2

: appel indirect

La sélection du mode de fonctionnement est faite par les instructions IM0, IM1 et IM2 qui forcent respectivement le mode 0, le mode 1 et le mode 2. Au démarrage, le mode est 0. ·

Mode 0,

le systéme d'interruption fonctionne exactement comme INTR de l'INTEL 8085. ·

Mode 1,

l'unité centrale redémarre à l'adresse 0038H en réponse à une demande d'interruption si le systéme est validé. Dans ce mode, le fonctionnement est identique à celui de la ligne NMI excepté que l'adresse de redémarrage est 0038H au lieu de 0066H. ·

Mode 2,

le périphérique demandeur doit forcer un octet dont le bit de poids faible est à 0, sur les lignes de données.

DESCRIPTION SUCCINCTE DE CONTROLEURS (ou codeurs) DE PRIORITES Contrôleur de priorité Intel 8214

Ce circuit de la m₨me génération que les microprocesseurs précédents.

Le circuit accepte huit demandes d'interruption, tient compte du niveau en cours.

Les huit niveaux doivent ₨tre connectés au 8214 dans l'ordre de priorité défini par l'utilisateur.

Cascade de contrôleurs 8214.

Quand on a besoin de plus de huit interruptions, on met plusieurs 8214 en cascade. Des signaux réservés sont prévus pour cela. Chacun de ces circuits posséde une priorité par rapport aux autres, suivant leur ordre dans la cascade. Ceci forme des groupes de priorités.

Contrôleur de priorité programmable Intel 8259

Ce circuit a été con₤u pour le microprocesseur 8085. Sa version 8259A a été utilisée dans les PC qui n'avaient que 8 entrées d'interruptions physiques numérotées de 0 à 7. La cascade a été prévue pour augmenter le nombre de sources d'interruption sans modifier le nombre d'entrées sur le processeur. L'organisation en cascade est faite en prenant pour entrée n°2 (IRQ 9) la sortie d'un deuxiéme 8259 et ainsi de suite jusqu'à 64 au plus.