Maison >Problème commun >Quelles sont les cinq étapes de la gestion des interruptions ?

Quelles sont les cinq étapes de la gestion des interruptions ?

青灯夜游
青灯夜游original
2021-04-14 16:06:2038151parcourir

Cinq étapes du processus de traitement des interruptions : 1. Étape de demande d'interruption ; 2. Étape d'arbitrage d'interruption, il existe deux méthodes d'arbitrage matériel et d'arbitrage logiciel 3. Étape de réponse d'interruption, le CPU envoie un message au ; source d'interruption Signal de réponse d'interruption ; 4. Phase de service d'interruption ; 5. Phase de retour d'interruption, retour au point d'arrêt du programme d'origine, restauration du site matériel et poursuite de l'exécution du programme d'origine.

Quelles sont les cinq étapes de la gestion des interruptions ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, ordinateur Dell G3.

Le processus de base du traitement des interruptions comprend cinq étapes : demande d'interruption, arbitrage d'interruption, réponse d'interruption, service d'interruption et retour d'interruption.

1. Phase de demande d'interruption


1) Les interruptions qui se produisent à l'intérieur du CPU (Interruptions internes) ne nécessitent pas de demandes d'interruption, La logique de contrôle d’interruption à l’intérieur du CPU la reçoit et la traite directement.

2) Interruption externe La demande est effectuée par la source d'interruption. La source d'interruption externe utilise la broche d'entrée d'interruption du CPU pour entrer un signal de demande d'interruption. Généralement, le processeur dispose de deux broches d'entrée de demande d'interruption : une broche d'entrée de demande d'interruption masquable et une broche d'entrée de demande d'interruption non masquable.

1.1 Déclencheur de demande d'interruption

Le moment où chaque source d'interruption envoie un signal de demande d'interruption est incertain, et le moment où le CPU répond à l'interruption est également incertain . Certainement. Par conséquent, chaque source d'interruption possède une bascule de demande d'interruption, qui verrouille son propre signal de demande d'interruption et le maintient jusqu'à ce que la CPU réponde à la demande d'interruption avant de l'effacer.

1.2 Bascule d'activation d'interruption

Il y a une bascule d'activation d'interruption à l'intérieur du CPU Lorsqu'elle est à "1", elle permet au CPU de répondre. interruptions, appelées Activer les interruptions. S'il est "0", le CPU n'est pas autorisé à répondre aux interruptions et les interruptions sont masquées, ce que l'on appelle interruptions désactivées.

%%Normalement, lorsque le processeur est réinitialisé, la bascule d'activation des interruptions est également réinitialisée à "0", ce qui signifie que les interruptions sont désactivées. Lorsque l'interruption du processeur répond, le processeur désactive automatiquement l'interruption et il lui est interdit d'accepter une autre nouvelle interruption.
%%L'état du déclencheur d'activation d'interruption peut être défini à l'aide de l'instruction d'activation ou de désactivation de l'interruption.

2. Étape d'arbitrage d'interruption


Le CPU ne peut accepter une demande d'une source d'interruption à la fois que lorsque plusieurs sources d'interruption envoient des demandes d'interruption au système. CPU en même temps, le CPU doit trouver la source d'interruption avec la priorité d'interruption la plus élevée, ce processus est appelé arbitrage d'interruption.

L'arbitrage d'interruption peut utiliser des méthodes matérielles ou des méthodes logicielles.

2.1 Arbitrage logiciel

Une fois que le CPU a détecté une demande d'interruption, il lit d'abord le contenu du registre de demande d'interruption et détecte son état petit à petit. Si un certain bit est 1, il est déterminé que la source d'interruption correspondante a une demande d'interruption et sa routine de service d'interruption est exécutée.

Celui qui est détecté en premier aura une priorité plus élevée, celui qui est détecté plus tard aura une priorité inférieure. L'ordre de détection est l'ordre de priorité de chaque source d'interruption.

Quelles sont les cinq étapes de la gestion des interruptions ?
Supposons que l'adresse du port d'entrée dans la figure ci-dessus est 87FFH. Il existe le programme de requête suivant :

MOV DX, 87FFH
IN AL, DX ; Lire le contenu du registre de demande d'interruption
SHR AL, 1
JC IR0 ; il y a une demande pour IRQ0, transférer vers IR0
SHR AL,1
JC IR1 ;S'il y a une demande dans IRQ1, transmettre à IR1
SHR AL,1
JC IR2 ;S'il y a une requête dans IRQ2, transmettre à IR2
… …
Logiciel Le processus de prise de décision prend beaucoup de temps. S'il existe de nombreuses sources d'interruption, les performances en temps réel des interruptions seront médiocres, mais la configuration des priorités logicielles est flexible.

2.2 Arbitrage matériel

Utiliser des circuits matériels spécialisés pour déterminer la priorité des sources d'interruption Il existe deux manières courantes : Arbitrage en guirlande Circuit optimal. et interrompre l'arbitrage du contrôleur .

2.2.1 Circuit d'arbitrage en guirlande

Idée de conception : Chaque source d'interruption a un circuit logique d'interruption, toute logique d'interruption Les circuits forment un chaîne, comme une guirlande. La source d'interruption située à l'avant de la chaîne a la priorité la plus élevée, et plus le périphérique est éloigné, plus la priorité est faible.
Quelles sont les cinq étapes de la gestion des interruptions ?
Processus de mise en œuvre : Le CPU reçoit une demande d'interruption si l'interruption est autorisée, le CPU envoie un signal de réponse d'interruption. Le signal de réponse à l'interruption atteint d'abord l'extrémité avant de la guirlande. Si la source d'interruption 1 fait une demande d'interruption, elle interceptera le signal de réponse à l'interruption et le bloquera afin qu'il ne puisse pas être transmis à la source d'interruption suivante. Que les sources d'interruption suivantes aient ou non émis des demandes d'interruption, il est impossible de recevoir des signaux de réponse d'interruption, de sorte qu'il est impossible de répondre à leurs demandes d'interruption.

2.2.2 Arbitrage du contrôleur d'interruption

Les contrôleurs d'interruption, tels que Intel8259A, peuvent définir la priorité d'interruption des sources d'interruption de diverses manières. Il existe un discriminateur de priorité d'interruption dans le contrôleur d'interruption, qui détermine automatiquement la source d'interruption la plus prioritaire demandant actuellement une interruption et envoie son code vectoriel d'interruption au bus de données. La CPU reçoit le code vectoriel d'interruption et le trouve en conséquence. .

Quelles sont les cinq étapes de la gestion des interruptions ?

3. Phase de réponse à l'interruption


Après l'arbitrage de l'interruption, le traitement de l'interruption entre dans la phase de réponse à l'interruption. En répondant à une interruption, le CPU envoie un signal de réponse d'interruption à la source d'interruption, et en même temps :

① Protégez le site matériel

② Désactivez les interruptions ;

③ Protéger les points d'arrêt ;

④ Obtenir l'adresse d'entrée de la routine de service d'interruption.


4. Phase de service d'interruption


La structure générale du programme de service d'interruption est :

1)

Protégez le site. Organisez plusieurs instructions push au début de la routine de service d'interruption pour pousser le contenu de chaque registre sur la pile pour le stockage.

2)

Activer les interruptions. Pendant l'exécution de la routine de service d'interruption, les demandes d'interruption de niveau supérieur sont autorisées à interrompre la routine de service d'interruption actuelle pour réaliser l'imbrication des interruptions.

3)

Interruption du service. Remplissez les exigences spécifiques aux sources d'interruption.

4)

Restaurer la scène. Avant la fin de la routine de service d'interruption, la scène d'interruption du programme principal doit être restaurée. Habituellement, les informations locales enregistrées dans la pile sont insérées dans le registre d'origine.

5)

Interruption du retour. Revenez au point d'arrêt du programme d'origine et continuez à exécuter le programme d'origine.

5. Interrompre l'étape de retour


Retournez au point d'arrêt du programme d'origine, restaurez le site matériel et continuez à exécuter le programme d'origine.

L'opération de retour d'interruption est le processus inverse de l'opération de réponse d'interruption.

Pour plus de connaissances liées à la programmation, veuillez visiter :

Vidéo de programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn