1 / 10

Interrupts (IRQ‘s)

Interrupts (IRQ‘s). Von WebMaster Mario. Interrupts.

Download Presentation

Interrupts (IRQ‘s)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Interrupts (IRQ‘s) Von WebMaster Mario

  2. Interrupts • Ein Interrupt ist eine Folge von Aktionen, bei denen der Prozessor seinen aktuellen Zustand (Machine Status Register (MSR), den Program Counter (PC)) sichert und die Ausführung an einer vordefinierten Adresse (Eintrag in der Exception Entry Table) fortsetzt. Diese Adresse ist der Einsprung in den entsprechenden Interrupt-Handler, in dem verifiziert wird, welches Device die Ausnahme ausgelöst hat. Entsprechend wird dann die zugehörige Interrupt-Service-Routine aufgrufen, in welcher dann die Ausnahmen behandelt wird.

  3. Interrupt. Eigentlich müßte die CPU alle an den Computer angeschlossenen Geräte (z.B. die Tastatur) regelmäßig fragen, ob irgendwelche Eingaben gemacht worden sind. Würde dies zu oft geschehen, wäre das System durch diese Abfragen (polling) stark ausgebremst; wären diese zu selten, müßte man zu lange warten, bis der Computer reagiert. Deshalb geht man hier anders vor. Die einzelnen Geräte melden sich bei der CPU, wenn sie dem System etwas mitzuteilen haben. Diese Meldung heißt Interrupt-Request (IRQ), da die Geräte verlangen, daß das System den aktuellen Prozeß kurz unterbricht, um auf ihre Eingabe einzugehen. Diese Interrupts werden vom Interrupt-Controller verwaltet, der die Abarbeitung der Interrupts nach einer Prioritätsliste verwaltet. In PCs gibt es 15 Interrupts, von IRQ 0 bis IRQ 15 durchnumeriert (IRQ2 zeigt auf die IRQs 8 bis 15). Damit ein reibungsloses Arbeiten des PC gewährleistet ist, darf jeder Interrupt im Prinzip nur einmal vergeben werden. Beim PCI-Bus wird ein ähnliches Verfahren verwendet. Hier gibt es die Interrupts INTA bis INTD. Diese werden auf normale Interrupts (IRQs) umgelegt.

  4. Ausnahmen • Als Ausnahme wird ein Ereignis (Event) bezeichnet, bei dem der Prozessor, sofern die entsprechenden Register konfiguriert sind, dazu veranlaßt wird, darauf mit einem Interrupt zu reagieren. Bei den Ausnahmen unterscheidet man: • Asynchrone Ausnahmen, welche durch externe Ereignisse indiziert werden. • Synchrone Ausnahmen, welche durch Befehle des Prozessors indiziert werden. • Präzise Ausnahmen, bei denen der gesicherte PC entweder die Adresse des Befehls, bei dem die Ausnahme auftrat oder die des im sequentiellen Ablauf darauffolgendenden Befehls enthält. • Unpräzise Ausnahmen, bei denen der gesicherte PC auch eine beliebige Adresse enthalten kann.

  5. Eigenschaften von Interrupts Interrupts besitzen Eigenschaften: • Syncron oder asyncron: Wenn das Ereignis bei jeder Programmausführung an der gleichen Stelle mit gleichen Daten und gleicher Speicherplatzzuweiseung, dann ist es ein syncrones Ereignis. Mit Ausnahme der Hardware-Funktionsstörung werden asyncrone Ereignis durch Geräte verursacht, die extern zum Prozessor und Speicher sind. • Nutzergewünscht oder erzwungen: Wenn das Ereignis vom Programmierer direkt herbeiführt wird, so ist es ein nutzergewünschtes Ereignis, sonst ein ein erzwungenes Ereignis. • Nutzermaskierbare oder nichtmaskierbare: Wenn ein Ereignis durch einen Prozeß verhinderbar ist, so spricht man von einem nutzermaskierbarem Ereignis. • Innerhalb oder zwischen Befehlen: Es gibt Ereignisse, die während einer Befehlsausführung eintreten und andere, die zwischen zwei Befehlsausführungen eintreten. • Fortsetzende und abschließende: Wenn ein Programmablauf nach Ausführung des Interrupts stoppt, nennt man das Ereignis abschließend.

  6. Arten der Interrupts • Wir unterscheiden: • Software - Interrupts • Hardware - Interrupts

  7. Hardware - Interrupts • Hardware-Interrupts werden durch verschiedene Hardware-Komponenten erzeugt und über den Interrupt-Controller, einen INTEL 8259, an die CPU weitergeleitet. Während der PC und der XT mit den acht durch einen 8259 verwaltbaren Interrupt-Quellen auskommt, ist dies für den AT nicht ausreichend. Aus diesem Grund enthält er zwei 8259-Interrupt-Controller, so daß er 16 Interrupt-Quellen IRQ0 bis IRQ15 verwalten kann.

  8. Software - Interrupts • Dies sind bestimmte Assembler- bzw. Maschinen-Instruktionen, die Software-Interrupts erzeugen. Sie heißen in der Praxis etwa INT (Intel 80X86) oder TRAP (MC68000). Sie ähneln normalen Unterprogrammaufrufen (Calls), aber die Zieladresse ist nicht fest vorgegeben, sondern durch eine Tabelle, die sog. Interruptvektor-Tabelle bestimmt. Parameter werden in Registern oder mit Hilfe des Stacks übergeben.

More Related