2017-01-03 1 views
0

Tout en passant par Basic I/O dans l'organisation informatique par "carl hamacher", je suis confus avec beaucoup de terminologies. Dans les interruptions d'E/S, chaque fois qu'un équipement déclenche une interruption, le processeur interrompt le programme en cours d'exécution et enregistre le contenu du registre de programme et du registre d'état, puis l'interruption est traitée par ISR. Une fois l'ISR terminé, le retour de l'instruction d'exécution est exécutée, puis le registre d'état enregistré et PC sont restaurés.Il est parfaitement clair pour moi.Quelle est la relation entre le registre d'état et le registre de contrôle?

Mais je suis coincé dans les points suivants ...-:

il y a un drapeau IE (interruption activé), si elle est 1 alors req de dispositif d'interruption d'E/S sont acceptées.

D'un autre côté, il y a un autre point.

L'interface d'un périphérique d'E/S comprend un registre de contrôle contenant les informations qui régissent le mode de fonctionnement du périphérique. Un bit dans ce registre peut être dédié pour interrompre le contrôle. Le dispositif d'E/S est autorisé à augmenter les demandes d'interruption uniquement lorsque ce bit est réglé sur 1

Maintenant, quel est ce registre de contrôle et quel bit ils parlent? est-ce différent de IE flag ??? Quelle est la relation entre le registre d'état et le registre de contrôle?

En outre, il est un autre point

Les informations nécessaires pour déterminer si un dispositif demande une interruption est disponible dans son registre d'état. Lorsque le périphérique déclenche une requête d'interruption, il met à 1 un bit dans son registre d'état, que nous appellerons le bit IRQ. Le moyen le plus simple d'identifier le périphérique d'interruption consiste à faire en sorte que le sous-programme de service d'interruption interroge tous les périphériques d'E/S du système. Le premier périphérique rencontré avec son bit IRQ défini sur 1 est le périphérique qui doit être réparé. Un sous-programme approprié est ensuite appelé à fournir le service demandé

S'il vous plaît expliquer relation entre ces 3 bits i.e. IE, le bit de registre IRQ et le contrôle je suis totalement confus .. !!!

Répondre

1

Tenir compte de cette simplifiée, mais complète, vue de la logique CPU derrière les interruptions reconnaissant:

CPU IRQ processing

Le IE drapeau dans le registre d'état est utilisé pour masquer toutes les demandes d'interruption de la broche IRQ.
Il contrôle chaque fois que l'UC traite une interruption lorsque IRQ est confirmée.
Ce registre d'état se trouve dans la CPU.


considèrent maintenant ce point de vue simplifiée d'un dispositif:

Device generating an IRQ, logic

Le dispositif a un bloc de contrôle qui reconnaît quand pour générer une demande d'interruption (la logique de génération d'interruption dans le schéma) .
Ce bloc émet un signal pour demander une interruption (IRQreq) et un ensemble de n signaux qui identifient la source/raison de l'interruption (par exemple, tampon de transmission vide par rapport aux nouvelles données reçues).

Ces deux signaux se terminera dans le registre d'état de l'appareil mais le IRQreq peut être éventuellement masqué par un registre de contrôle de l'appareil bit IRQen.

Si IRQen est égal à zéro, le dispositif IRQ broche sera zéro trop et pas IRQ est demandé, en outre, aucun bit est défini dans le registre d'état pour indiquer qu'une interruption a été demandée.
La raison d'interruption est toujours écrite cependant parce que le software can use polling to test the device status.

Le même ISR peut être utilisé pour gérer plusieurs périphériques. Il est donc nécessaire de reconnaître le périphérique réellement déclenché et de vérifier chaque registre d'état de périphérique possible.


Donc il y a trois registres:

  • registre d'état CPU Laissez le masque logiciel interrompt au niveau du processeur; toutes les interruptions sont masquées, quel que soit le périphérique qui les génère.
  • Registre de contrôle de périphérique Laisser le logiciel masquer les interruptions par périphérique; certains périphériques peuvent être empêchés de générer une interruption certains pas.
  • Registre d'état du périphérique Indiquez au logiciel la dernière interruption générée (le cas échéant). Habituellement, ceci est également utilisé pour ACK l'interruption.
+0

IRQ est comme IE (interruption enable) drapeau qui sont utilisés pour accepter/rejeter l'interruption req .... i.e bit IE doit être 1 si un périphérique veut traiter son req interrompu .. !! ai-je raison? – sourav

+0

@sourav IRQ est une broche de l'appareil (c'est ** en dehors de la boîte en pointillés qui représente la puce de l'appareil). Le périphérique est une ** source ** d'interruptions, il * génère * des interruptions. Mais pour être capable de générer une interruption, le bit * IRQen * dans le registre de contrôle doit être 1 ou le résultat AND sera 0 et il en sera de même pour * IRQ * (aucune interruption demandée). * IE * et * IRQen * sont fondamentalement le même concept à partir de deux vues différentes: la première est * ne pas accepter les interruptions * la seconde est * ne pas laisser les interruptions sortir *. –

+0

okk merci beaucoup! – sourav

0

Contrôle (IE) - Utilisé pour activer ou désactiver la capacité d'un périphérique à demander des interruptions. "Cet appareil est-il autorisé à demander une interruption?" Etat (IRQ) - Si les interruptions sont activées (par le contrôle), l'IRQ est définie pour indiquer qu'un périphérique particulier a demandé une interruption. "Cet appareil demande maintenant une interruption."

Je ne sais pas exactement où se trouve le 3e bit, à moins qu'il ne soit activé/désactivé globalement (et non par périphérique). En fonction de l'architecture spécifique, il y a probablement IE/IRQ par périphérique, et également IE/IRQ global, où l'IE global remplace le périphérique, et l'IRQ globale indique qu'au moins 1 périphérique a son IRQ défini.

+0

Les indicateurs IRQ et IE appartiennent-ils au même registre d'état? – sourav