Registres MIPS et Gestion des IRQ

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

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. (C)</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. (B)</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. (A)</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 (C)</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. (A)</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 (A)</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 (D)</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 (D)</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 (C)</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 (D)</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. (A)</p> Signup and view all the answers

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

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

Que signifie le terme IRQ?

<p>Interrupt Request. (D)</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. (D)</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. (A)</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. (C)</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. (D)</p> Signup and view all the answers

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

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

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

<p>Interruption Request (A), Requête d'Interruption (B)</p> Signup and view all the answers

Quels états peut avoir un signal IRQ ?

<p>Deux états : ON et OFF (D)</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 (D)</p> Signup and view all the answers

Quels sont les composants sources des IRQ ?

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

Que signifie masquer une IRQ ?

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

Quels composants sont capables de masquer une IRQ ?

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

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

<p>Une routine de traitement d'interruption (A)</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 (D)</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. (D)</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. (B)</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. (D)</p> Signup and view all the answers

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

<p>ICU_HIGHEST. (D)</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. (B)</p> Signup and view all the answers

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

<p>TTY_READ. (A)</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. (C)</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. (D)</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 (D)</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 (A)</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 (C)</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 (A)</p> Signup and view all the answers

Que signifie un bit EXL à 1 dans le MIPS ?

<p>Mode kernel avec interruptions masquées (B)</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 (C)</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 (C)</p> Signup and view all the answers

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

<p>UM (B)</p> Signup and view all the answers

Flashcards

IRQ

Les IRQ (Interrupt ReQuest) sont des signaux électriques qui indiquent un événement particulier, comme la réception d'une donnée ou la fin d'un processus. Ces signaux sont émis par les contrôleurs de périphériques pour prévenir le processeur de l'évènement.

ISR

L'ISR (Interrupt Service Routine) est un programme spécial qui est exécuté par le noyau en réponse à une interruption (IRQ). L'ISR traite l'événement qui a provoqué l'interruption et effectue les actions nécessaires pour répondre à l'événement.

Routage des IRQ

Le routage des interruptions permet de déterminer quelle ISR est exécutée en réponse à une interruption. Chaque IRQ est associée à une ISR spécifique.

Masquage des IRQ

Le masquage des interruptions permet d'empêcher le processeur de recevoir des interruptions spécifiques. Cela peut être utilisé pour éviter les interruptions indésirables ou pour gérer des situations critiques.

Signup and view all the flashcards

ICU

L'ICU (Interrupt Controller Unit) est un composant qui gère les interruptions provenant des périphériques. L'ICU reçoit les IRQ des périphériques et les transmet au processeur.

Signup and view all the flashcards

TIMER

Le TIMER est un périphérique qui génère des interruptions périodiquement. Le TIMER est utilisé pour mesurer le temps et pour planifier des tâches.

Signup and view all the flashcards

TTY

Le TTY est un terminal de texte utilisé pour interagir avec le système d'exploitation. Le TTY est un périphérique qui reçoit les entrées de l'utilisateur et affiche les sorties du système.

Signup and view all the flashcards

Registres

Les registres sont des emplacements de mémoire qui stockent des informations spécifiques. Le Contrôleur de périphérique utilise des registres pour communiquer avec le processeur.

Signup and view all the flashcards

Routine d'interruption

La routine appelée lors d'une interruption.

Signup and view all the flashcards

ICU (Interrupt Controller Unit)

Le composant qui combine les IRQ de différents périphériques en un seul signal envoyé au processeur.

Signup and view all the flashcards

ICU_STATE

Registre contenant les bits d'état des IRQ, indiquant lesquelles sont actives.

Signup and view all the flashcards

ICU_MASK

Registre contenant les bits de masquage des IRQ, déterminant lesquelles sont ignorées.

Signup and view all the flashcards

ICU_HIGHEST

Registre contenant le numéro de l'IRQ active la plus prioritaire.

Signup and view all the flashcards

Masquage des IRQ par HWI0

Le bit HWI0 dans le registre c0_status est utilisé pour contrôler le masquage des interruptions (IRQ). Si HWI0 est à 0, l'IRQ est masquée et la sortie du AND est 0.

Signup and view all the flashcards

Configuration du registre ICU_MASK

Le registre ICU_MASK est utilisé pour configurer l'activation ou la désactivation des interruptions provenant des contrôleurs de périphériques. Cependant, il n'est pas directement modifiable. Des registres séparés, ICU_SET et ICU_CLEAR, sont utilisés pour modifier le contenu de ICU_MASK.

Signup and view all the flashcards

Vecteur d'interruption (IRQ_VECTOR_ISR[], IRQ_VECTOR_DEV[])

Le vecteur d'interruption est utilisé pour associer chaque numéro d'IRQ à une ISR (Interrupt Service Routine) et son périphérique associé. Il est constitué de deux tableaux, IRQ_VECTOR_ISR[] et IRQ_VECTOR_DEV[], chacun avec 32 cases correspondant aux différentes IRQ.

Signup and view all the flashcards

Signal IRQ

Le signal IRQ est activé quand l'ICU détecte une interruption provenant d'un contrôleur de périphérique. C'est le signe qu'une interruption doit être traitée.

Signup and view all the flashcards

Traitement de l'IRQ par le MIPS

Lorsque l'IRQ est activée, le MIPS interromp son programme en cours et saute à l'adresse 0x80000180, correspondant à l'ISR 'kentry'. Simultanément, l'adresse de retour (PC+4) est enregistrée dans C0_EPC et l'état du processeur (c0_status) est mis à jour pour indiquer que l'exception est en cours de traitement.

Signup and view all the flashcards

Activation/désactivation des IRQ (bit IE dans c0_status)

L'état de l'IRQ est contrôlé par le bit IE (Interrupt Enable) de c0_status. Le bit IE est un bit de contrôle global qui active ou désactive la réception des IRQ par le processeur.

Signup and view all the flashcards

Niveau d'exception (bit EXL dans c0_status)

Le bit EXL (Exception Level) de c0_status est utilisé pour contrôler le niveau d'exception. Lorsque EXL=1, les interruptions sont masquées.

Signup and view all the flashcards

Espace d'adressage inaccessible en mode utilisateur

Les registres de l'unité de commande des interruptions (ICU) sont mappés dans une partie de l'espace d'adressage inaccessible en mode utilisateur.

Signup and view all the flashcards

Qu'est-ce que IRQ ?

L'acronyme IRQ signifie Interrupt Request, ou requête d'interruption en français.

Signup and view all the flashcards

Combien d'états pour une IRQ?

Une IRQ, ou requête d'interruption, est un signal électrique à deux états : levé (actif) ou baissé (inactif). Levée signifie que l'interruption est demandée.

Signup and view all the flashcards

Que connectent les IRQ ?

Les IRQ sont des signaux électriques qui relient les contrôleurs de périphériques (comme un terminal TTY) aux processeurs.

Signup and view all the flashcards

Que signifie masquer une IRQ ?

Masquer une IRQ signifie bloquer le signal entre sa source et sa destination. L'IRQ est toujours levée, mais le processeur ne la reçoit pas.

Signup and view all the flashcards

Qui peut masquer une IRQ ?

Le composant ICU et le processeur MIPS peuvent masquer une IRQ.

Signup and view all the flashcards

Qu'est-ce qu'une ISR ?

Une ISR (Interrupt Service Routine) est une fonction C appelée en réponse à une interruption. Elle gère l'événement qui a déclenché l'IRQ.

Signup and view all the flashcards

Où sont branchées les IRQ des TTYs et TIMER ?

Les IRQ provenant des TTYs et du TIMER sont connectées à des entrées spécifiques de l'ICU.

Signup and view all the flashcards

Quel est le rôle du tableau IRQ_VECTOR_ISR[] ?

Le tableau IRQ_VECTOR_ISR[] est utilisé pour stocker les adresses des fonctions ISR associées à chaque IRQ. Chaque case du tableau correspond à un numéro d'IRQ, et la valeur dans la case est l'adresse de la fonction ISR à appeler pour cet IRQ.

Signup and view all the flashcards

Quel est le rôle du tableau IRQ_VECTOR_DEV[] ?

Le tableau IRQ_VECTOR_DEV[] stocke le numéro d'instance du périphérique associé à chaque IRQ. Cela permet de distinguer les périphériques multiples qui partagent la même IRQ.

Signup and view all the flashcards

Quel est le rôle du coprocesseur 0 dans la gestion des interruptions ?

Le coprocesseur 0 est utilisé pour gérer les interruptions et les exceptions dans le MIPS. Il comprend des registres dédiés à la gestion des états d'interruption.

Signup and view all the flashcards

Quel est le rôle du registre c0_status ?

Le registre c0_status (aussi appelé c0_sr) contrôle l'activation et la désactivation des interruptions. Le bit HWI0 de ce registre est spécifiquement utilisé pour le masquage des interruptions.

Signup and view all the flashcards

Quel est le rôle du registre c0_cause ?

Le registre c0_cause contient des informations sur la raison de l'entrée dans le noyau, que ce soit par une interruption, une exception ou un appel système.

Signup and view all the flashcards

Quelles sont les fonctions des bits UM, IE et EXL dans les registres c0_status et c0_cause ?

Les bits UM (User Mode), IE (Interruption Enable) et EXL (Exception Level) dans les registres c0_status et c0_cause identifient le mode d'exécution du processeur. Ils déterminent si le processeur est en mode utilisateur (User Mode), si les interruptions sont activées, et si le processeur est en mode exceptionnel.

Signup and view all the flashcards

Comment le noyau accède aux registres des contrôleurs de périphériques ?

Les registres des contrôleurs de périphériques sont situés à des adresses spécifiques dans l'espace d'adressage du système. Le noyau connaît ces adresses en utilisant des tables de mapping qui associent les adresses physiques des périphériques à des adresses logiques utilisées par le noyau.

Signup and view all the flashcards

Comment le Kernel utilise les informations stockées dans les tables IRQ_VECTOR_ISR[] et IRQ_VECTOR_DEV[] ?

Le Kernel utilise les informations stockées dans les tables IRQ_VECTOR_ISR[] et IRQ_VECTOR_DEV[] pour savoir quel ISR appeler et quel périphérique est à l'origine de l'interruption.

Signup and view all the flashcards

Comment filtrer les interruptions des TTYs ?

Le registre ICU_MASK est utilisé pour filtrer les interruptions reçues par le processeur. Pour recevoir uniquement les interruptions des 4 TTYs, il faut mettre à 1 les bits 10, 11, 12 et 13 du registre ICU_MASK. Cela revient à écrire 0b00000000.00000000.00111100.00000000, soit 0x00003C00 en héxadécimal.

Signup and view all the flashcards

Comment activer une interruption ?

L'écriture directe dans le registre ICU_MASK n'est pas possible. Pour activer une interruption, il faut écrire 1 dans le bit correspondant du registre ICU_SET.

Signup and view all the flashcards

Comment gérer plusieurs périphériques et leurs interruptions ?

Pour démasquer uniquement le TTY1 et le TIMER, et masquer le TTY0, on doit activer les bits 2 et 14 du registre ICU_SET (pour TTY1 et TIMER) et désactiver le bit 5 du registre ICU_CLEAR (pour TTY0).

Signup and view all the flashcards

Quel est le rôle du registre ICU_MASK ?

Le registre ICU_MASK détermine quelles interruptions sont transmises au processeur. Chaque bit du registre représente une interruption spécifique. La valeur de chaque bit indique si l'interruption est active (1) ou masquée (0).

Signup and view all the flashcards

Quel est le rôle du registre ICU_MASK dans l'ICU ?

L'ICU (interrupt controller unit) gère les interruptions provenant des périphériques. Le registre ICU_MASK est un registre clé de l'ICU, car il permet de déterminer quelles interruptions sont transmises au processeur.

Signup and view all the flashcards

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

More Like This

Use Quizgecko on...
Browser
Browser