Registres MIPS et Gestion des IRQ
45 Questions
1 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Que se passe-t-il lorsque le bit HWI0 du registre c0_status est à 0?

  • Le programme en cours d'exécution est immédiatement interrompu.
  • Le registre c0_status est mis à jour automatiquement.
  • La sortie du AND est 1 et l'IRQ est active.
  • La sortie du AND est 0 et l'IRQ est masquée. (correct)
  • Quel est le rôle du bit IE dans le registre c0_status?

  • Il masque globalement les IRQ. (correct)
  • Il modifie la valeur du registre IPC.
  • Il permet de désactiver la gestion des exceptions.
  • Il déclenche le vecteur d'interruption.
  • Que doivent faire les registres ICU_SET et ICU_CLEAR pour interagir avec le registre ICU_MASK?

  • ICU_SET met à 0 les bits et ICU_CLEAR met à 1.
  • ICU_SET met à 1 les bits et ICU_CLEAR met à 0. (correct)
  • ICU_SET et ICU_CLEAR n'interagissent pas avec ICU_MASK.
  • ICU_SET permet de lire les bits, ICU_CLEAR permet de les modifier.
  • Quel est le rôle des tableaux IRQ_VECTOR_ISR[] et IRQ_VECTOR_DEV[]?

    <p>Ils déterminent quel ISR exécuter pour chaque numéro d'IRQ.</p> Signup and view all the answers

    Quel est l'effet de l'activation d'un signal IRQ sur le MIPS?

    <p>Le programme en cours est dérouté vers kentry à l'adresse 0x80000180.</p> Signup and view all the answers

    Que fait le bit EXL dans le registre c0_status lorsqu'il est mis à 1?

    <p>Il bascule le traitement des exceptions.</p> Signup and view all the answers

    Combien d'entrées possibles d'IRQ le contrôleur de l'ICU peut-il gérer?

    <p>32</p> Signup and view all the answers

    Pour modifier le registre ICU_MASK, quels registres doivent être utilisés?

    <p>ICU_SET et ICU_CLEAR.</p> 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 ?

    <p>0b00000000.00000000.00111100.00000000</p> Signup and view all the answers

    Que faut-il écrire dans le registre ICU_SET pour mettre à 1 le bit 10 ?

    <p>1 dans le registre ICU_SET</p> 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 ?

    <p>Bits 2 et 14</p> 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 ?

    <p>0x00004004</p> Signup and view all the answers

    Comment s'assurer que le bit 5 de ICU_MASK soit à 0 ?

    <p>Écrire 1 dans le registre ICU_CLEAR</p> Signup and view all the answers

    Quel est le rôle des registres mappés dans l'espace d'adressage du MIPS?

    <p>Gérer les signaux d'interruption.</p> Signup and view all the answers

    À partir de quelle adresse les registres du TIMER sont-ils mappés?

    <p>0xd3200000</p> Signup and view all the answers

    Que signifie le terme IRQ?

    <p>Interrupt Request.</p> Signup and view all the answers

    Quelle est la conséquence d'une IRQ levée par un contrôleur de périphérique?

    <p>Le programme est suspendu et dirige vers le noyau.</p> Signup and view all the answers

    Les adresses de contrôleurs de périphériques peuvent-elles être changées par le logiciel?

    <p>Non, elles sont fixées par le matériel.</p> Signup and view all the answers

    Quelle est la fonction des ISR (Interrupt Service Routines)?

    <p>Traiter les interruptions levées par les IRQ.</p> 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?

    <p>Mode kernel.</p> Signup and view all the answers

    Quelles sont les deux conditions d'état des IRQ?

    <p>Actif / Inactif.</p> Signup and view all the answers

    Quelle est la signification de l'acronyme I.R.Q. ?

    <p>Interruption Request</p> Signup and view all the answers

    Quels états peut avoir un signal IRQ ?

    <p>Deux états : ON et OFF</p> Signup and view all the answers

    Quel événement peut provoquer une IRQ ?

    <p>L'arrivée d'une donnée sur le contrôleur de périphérique</p> Signup and view all the answers

    Quels sont les composants sources des IRQ ?

    <p>Les contrôleurs de périphériques</p> Signup and view all the answers

    Que signifie masquer une IRQ ?

    <p>Bloquer le signal entre la source et la destination</p> Signup and view all the answers

    Quels composants sont capables de masquer une IRQ ?

    <p>Le composant ICU et le MIPS</p> Signup and view all the answers

    Qu'est-ce qu'une I.S.R. ?

    <p>Une routine de traitement d'interruption</p> 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 ?

    <p>Les TTYs et le TIMER</p> Signup and view all the answers

    Quelle est la fonction principale d'une ISR ?

    <p>Accéder aux registres du contrôleur de périphérique et acquitter l'IRQ.</p> Signup and view all the answers

    Quel composant dans une plateforme de TP peut lever des IRQ ?

    <p>Seuls les composants TTY et TIMER peuvent le faire.</p> Signup and view all the answers

    Que se passe-t-il lorsque l'IRQ est masquée ?

    <p>Le processeur ne réagit pas à l'IRQ.</p> Signup and view all the answers

    Quel registre contient le numéro de l'IRQ active la plus prioritaire ?

    <p>ICU_HIGHEST.</p> Signup and view all the answers

    Comment l'IRQ du TTY0 est-elle reliée au système ?

    <p>Elle est reliée à l'entrée n° 10 de l'ICU.</p> Signup and view all the answers

    Quel registre doit être accédé pour acquitter l'IRQ du TTY ?

    <p>TTY_READ.</p> 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 ?

    <p>Il masque l'IRQ si le bit est à 0.</p> Signup and view all the answers

    D'où provient le signal IRQ envoyé au processeur ?

    <p>Des composants TTY et TIMER combinés par l'ICU.</p> Signup and view all the answers

    Quel est le rôle de la case n° i du tableau IRQ_VECTOR_ISR[] ?

    <p>Contenir le pointeur sur la fonction ISR à appeler</p> Signup and view all the answers

    Quel type d'informations est stocké dans la case n° i du tableau IRQ_VECTOR_DEV[] ?

    <p>Le numéro de l'instance du périphérique</p> Signup and view all the answers

    Quels sont les trois registres du coprocesseur 0 impliqués lors de l'entrée dans le noyau ?

    <p>syscall, interruption, exception</p> Signup and view all the answers

    Quel bit du registre c0_status détermine si les interruptions sont masquées ou autorisées ?

    <p>IE</p> Signup and view all the answers

    Que signifie un bit EXL à 1 dans le MIPS ?

    <p>Mode kernel avec interruptions masquées</p> Signup and view all the answers

    Quel est le rôle des instructions mtc0 et mfc0 ?

    <p>Lire et écrire les registres du coprocesseur 0</p> Signup and view all the answers

    Comment sont adressées les ISR des TTY dans le tableau IRQ_VECTOR_ISR[] ?

    <p>Dans les cases 10, 11, 12 et 13</p> Signup and view all the answers

    Quel bit indique le mode d'exécution actuel du MIPS ?

    <p>UM</p> 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 registre TIMER_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 et c0_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.

    Quiz Team

    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.

    More Like This

    Use Quizgecko on...
    Browser
    Browser