Podcast
Questions and Answers
Que se passe-t-il lorsque le bit HWI0 du registre c0_status est à 0?
Que se passe-t-il lorsque le bit HWI0 du registre c0_status est à 0?
Quel est le rôle du bit IE dans le registre c0_status?
Quel est le rôle du bit IE dans le registre c0_status?
Que doivent faire les registres ICU_SET et ICU_CLEAR pour interagir avec le registre ICU_MASK?
Que doivent faire les registres ICU_SET et ICU_CLEAR pour interagir avec le registre ICU_MASK?
Quel est le rôle des tableaux IRQ_VECTOR_ISR[] et IRQ_VECTOR_DEV[]?
Quel est le rôle des tableaux IRQ_VECTOR_ISR[] et IRQ_VECTOR_DEV[]?
Signup and view all the answers
Quel est l'effet de l'activation d'un signal IRQ sur le MIPS?
Quel est l'effet de l'activation d'un signal IRQ sur le MIPS?
Signup and view all the answers
Que fait le bit EXL dans le registre c0_status lorsqu'il est mis à 1?
Que fait le bit EXL dans le registre c0_status lorsqu'il est mis à 1?
Signup and view all the answers
Combien d'entrées possibles d'IRQ le contrôleur de l'ICU peut-il gérer?
Combien d'entrées possibles d'IRQ le contrôleur de l'ICU peut-il gérer?
Signup and view all the answers
Pour modifier le registre ICU_MASK, quels registres doivent être utilisés?
Pour modifier le registre ICU_MASK, quels registres doivent être utilisés?
Signup and view all the answers
Quelle est la valeur binaire nécessaire dans le registre ICU_MASK pour recevoir uniquement les IRQ des 4 TTYs ?
Quelle est la valeur binaire nécessaire dans le registre ICU_MASK pour recevoir uniquement les IRQ des 4 TTYs ?
Signup and view all the answers
Que faut-il écrire dans le registre ICU_SET pour mettre à 1 le bit 10 ?
Que faut-il écrire dans le registre ICU_SET pour mettre à 1 le bit 10 ?
Signup and view all the answers
Quels bits faut-il écrire à 1 dans le registre ICU_SET pour démasquer seulement TTY1 et le TIMER ?
Quels bits faut-il écrire à 1 dans le registre ICU_SET pour démasquer seulement TTY1 et le TIMER ?
Signup and view all the answers
Quelle valeur hexadécimale correspond à une écriture de 1 dans les bits 2 et 14 dans le registre ICU_SET ?
Quelle valeur hexadécimale correspond à une écriture de 1 dans les bits 2 et 14 dans le registre ICU_SET ?
Signup and view all the answers
Comment s'assurer que le bit 5 de ICU_MASK soit à 0 ?
Comment s'assurer que le bit 5 de ICU_MASK soit à 0 ?
Signup and view all the answers
Quel est le rôle des registres mappés dans l'espace d'adressage du MIPS?
Quel est le rôle des registres mappés dans l'espace d'adressage du MIPS?
Signup and view all the answers
À partir de quelle adresse les registres du TIMER sont-ils mappés?
À partir de quelle adresse les registres du TIMER sont-ils mappés?
Signup and view all the answers
Que signifie le terme IRQ?
Que signifie le terme IRQ?
Signup and view all the answers
Quelle est la conséquence d'une IRQ levée par un contrôleur de périphérique?
Quelle est la conséquence d'une IRQ levée par un contrôleur de périphérique?
Signup and view all the answers
Les adresses de contrôleurs de périphériques peuvent-elles être changées par le logiciel?
Les adresses de contrôleurs de périphériques peuvent-elles être changées par le logiciel?
Signup and view all the answers
Quelle est la fonction des ISR (Interrupt Service Routines)?
Quelle est la fonction des ISR (Interrupt Service Routines)?
Signup and view all the answers
Quel est le mode nécessaire pour utiliser les adresses des contrôleurs de périphériques sur MIPS?
Quel est le mode nécessaire pour utiliser les adresses des contrôleurs de périphériques sur MIPS?
Signup and view all the answers
Quelles sont les deux conditions d'état des IRQ?
Quelles sont les deux conditions d'état des IRQ?
Signup and view all the answers
Quelle est la signification de l'acronyme I.R.Q. ?
Quelle est la signification de l'acronyme I.R.Q. ?
Signup and view all the answers
Quels états peut avoir un signal IRQ ?
Quels états peut avoir un signal IRQ ?
Signup and view all the answers
Quel événement peut provoquer une IRQ ?
Quel événement peut provoquer une IRQ ?
Signup and view all the answers
Quels sont les composants sources des IRQ ?
Quels sont les composants sources des IRQ ?
Signup and view all the answers
Que signifie masquer une IRQ ?
Que signifie masquer une IRQ ?
Signup and view all the answers
Quels composants sont capables de masquer une IRQ ?
Quels composants sont capables de masquer une IRQ ?
Signup and view all the answers
Qu'est-ce qu'une I.S.R. ?
Qu'est-ce qu'une I.S.R. ?
Signup and view all the answers
Quels éléments sont connectés aux entrées de l'ICU pour les IRQ dans la plateforme des TPs ?
Quels éléments sont connectés aux entrées de l'ICU pour les IRQ dans la plateforme des TPs ?
Signup and view all the answers
Quelle est la fonction principale d'une ISR ?
Quelle est la fonction principale d'une ISR ?
Signup and view all the answers
Quel composant dans une plateforme de TP peut lever des IRQ ?
Quel composant dans une plateforme de TP peut lever des IRQ ?
Signup and view all the answers
Que se passe-t-il lorsque l'IRQ est masquée ?
Que se passe-t-il lorsque l'IRQ est masquée ?
Signup and view all the answers
Quel registre contient le numéro de l'IRQ active la plus prioritaire ?
Quel registre contient le numéro de l'IRQ active la plus prioritaire ?
Signup and view all the answers
Comment l'IRQ du TTY0 est-elle reliée au système ?
Comment l'IRQ du TTY0 est-elle reliée au système ?
Signup and view all the answers
Quel registre doit être accédé pour acquitter l'IRQ du TTY ?
Quel registre doit être accédé pour acquitter l'IRQ du TTY ?
Signup and view all the answers
Quel effet a l'AND entre le bit 10 du registre ICU_STATE et le bit 10 du registre ICU_MASK ?
Quel effet a l'AND entre le bit 10 du registre ICU_STATE et le bit 10 du registre ICU_MASK ?
Signup and view all the answers
D'où provient le signal IRQ envoyé au processeur ?
D'où provient le signal IRQ envoyé au processeur ?
Signup and view all the answers
Quel est le rôle de la case n° i du tableau IRQ_VECTOR_ISR[] ?
Quel est le rôle de la case n° i du tableau IRQ_VECTOR_ISR[] ?
Signup and view all the answers
Quel type d'informations est stocké dans la case n° i du tableau IRQ_VECTOR_DEV[] ?
Quel type d'informations est stocké dans la case n° i du tableau IRQ_VECTOR_DEV[] ?
Signup and view all the answers
Quels sont les trois registres du coprocesseur 0 impliqués lors de l'entrée dans le noyau ?
Quels sont les trois registres du coprocesseur 0 impliqués lors de l'entrée dans le noyau ?
Signup and view all the answers
Quel bit du registre c0_status détermine si les interruptions sont masquées ou autorisées ?
Quel bit du registre c0_status détermine si les interruptions sont masquées ou autorisées ?
Signup and view all the answers
Que signifie un bit EXL à 1 dans le MIPS ?
Que signifie un bit EXL à 1 dans le MIPS ?
Signup and view all the answers
Quel est le rôle des instructions mtc0 et mfc0 ?
Quel est le rôle des instructions mtc0 et mfc0 ?
Signup and view all the answers
Comment sont adressées les ISR des TTY dans le tableau IRQ_VECTOR_ISR[] ?
Comment sont adressées les ISR des TTY dans le tableau IRQ_VECTOR_ISR[] ?
Signup and view all the answers
Quel bit indique le mode d'exécution actuel du MIPS ?
Quel bit indique le mode d'exécution actuel du MIPS ?
Signup and view all the answers
Study Notes
Gestion des Interruptions
- Les interruptions (IRQ) sont des signaux électriques à 2 états (actif/inactif) générés par des contrôleurs de périphériques (TTY, ICU, TIMER) pour signaler un événement.
- Les interruptions sont levées par les périphériques pour avertir le processeur d'un événement (par exemple fin de commande, données arrivées).
- Lorsque l'IRQ est levée, le programme en cours est interrompu et le processeur est redirigé vers le noyau pour exécuter la Routine de Service d'Interruption (ISR) correspondante.
- Les ISR sont des fonctions exécutées par le noyau pour gérer les demandes des périphériques.
- Chaque ISR reçoit l'identifiant du périphérique qui a levé l'IRQ, accède aux registres du périphérique et acquitte l'IRQ (désactive le signal).
Contrôleurs de périphériques
- Les contrôleurs de périphériques (TTY, ICU, TIMER) communiquent via des registres mappés en mémoire.
- Les adresses des registres sont fixées par le fabricant du matériel et sont définies dans le fichier
idscript
(kernel.ld). - Les adresses des contrôleurs sont situées dans la mémoire au-dessus de l'adresse
0x80000000
, étant en mode noyau.
IRQ et ISR
- IRQ : Requêtes d'Interruption
- ISR : Routine de Service d'Interruption
- Les IRQ sont des signaux qui restent actifs jusqu'à ce qu'une ISR les ait traités.
- Une ISR doit accéder aux registres du périphérique pour répondre à la demande et acquitter l'interruption (c'est-à-dire faire baisser/désactiver l'IRQ).
- L'acquittement diffère selon le périphérique (par exemple, lire le registre
TTY_READ
pour le TTY, écrire sur le registreTIMER_RSTIRQ
pour le TIMER).
Routage et masquage des IRQ
- Les IRQ des contrôleurs de périphériques sont regroupées par l'ICU (contrôleur d'interruptions).
- L'ICU combine les différents signaux IRQ provenant de TTY et TIMER, et produit un signal unique (MIRQ) à envoyer au processeur (MIPS).
- Le processeur peut masquer les IRQ pour éviter d'être interrompu lors d'opérations critiques.
- Le masquage peut se faire au niveau de l'ICU (avec les registres ICU_MASK, ICU_SET et ICU_CLEAR) ou du processeur.
Registres du Coprocesseur 0
- Les registres
c0_status
,c0_cause
etc0_epc
sont importants lors des interruptions. -
c0_status
contrôle l'activation/désactivation des interruptions, le mode d'exécution (Mode utilisateur ou noyau). -
c0_cause
indique la cause de l'interruption (IRQ, syscall, exception). -
c0_epc
contient l'adresse de l'instruction à reprendre après l'interruption.
Vecteur d'interruption
- Le vecteur d'interruption contient la correspondance entre un numéro d'interruption et l'ISR correspondante.
- Le tableau
IRQ_VECTOR_ISR
contient les pointeurs vers les fonctions ISR. - Le tableau
IRQ_VECTOR_DEV
contient l'identifiant du périphérique qui a provoqué l'interruption.
Conséquences dans le noyau
- Le noyau utilise des tableaux pour gérer les IRQ.
- Le noyau stocke les pointeurs vers les ISR et les identifiants des périphériques dans ces tableaux.
- Ces tableaux permettent d'obtenir rapidement l'ISR correcte à exécuter en fonction de l'interruption.
Questions
- Les questions posées dans le document portent sur la mise en place et le fonctionnement des mécanismes d'interruption.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Ce quiz explore les détails des registres MIPS, notamment c0_status et ICU_MASK. Il couvre également l'interaction des bits de statut et leur impact sur les interruptions. Testez vos connaissances sur la gestion des IRQ et les opérations liées aux registres spécifiques du MIPS.