Zum Inhalt springen

„Programmable Interrupt Controller“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
VolkovBot (Diskussion | Beiträge)
K Bot: Ergänze: cs:Řadič přerušení
Satzbau
 
(30 dazwischenliegende Versionen von 21 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Ein '''Programmable Interrupt Controller''' (PIC) ist ein integrierter Schaltkreis zur Verwaltung mehrerer Hardware-[[Interrupt]]s und zu deren geordneter Weiterleitung an eine [[Hauptprozessor|CPU]]. Denn Prozessoren (z.B. Intel- und AMD-Prozessoren) weisen oft nur einen Eingang für solche Interrupt-Anforderungen auf. Daher arbeitet ein PIC also als [[Multiplexer]] für die Hardware-Interrupts.
Ein '''Programmable Interrupt Controller''' (PIC) ist ein [[integrierter Schaltkreis]] zur Verwaltung mehrerer Hardware-[[Interrupt]]s und zu deren geordneter Weiterleitung an einen [[Prozessor]] (CPU). Prozessoren (z. B. Intel- und AMD-Prozessoren) weisen oft nur einen Eingang für solche Interrupt-Anforderungen auf. Daher arbeitet ein PIC als [[Multiplexer]] für die Hardware-Interrupts. In heutigen Rechnerkonstruktionen befindet er sich in der Regel in der [[Southbridge]] des [[Hauptplatine]]n­chipsatzes und leitet die Informationen über die Unterbrechung an die CPU weiter.


Für [[x86]] Hardware existieren zwei verschiedene PICs:
Für [[X86-Prozessor|x86]]-Hardware existieren zwei verschiedene PICs:
* den Intel 8259A (auch XT-PIC oder einfach "PIC" genannt)
* den [[Intel 8259]] (auch XT-PIC oder einfach „PIC“ genannt)
* der Advanced Programmable Interrupt Controller, [[APIC]].
* der [[Advanced Programmable Interrupt Controller]] (APIC)


Die Abkürzung PIC ist nicht mit der Mikrocontrollerfamilie [[PICmicro]] zu verwechseln.


== Der 8259A PIC ==
== Siehe auch ==
* [[Unterbrechungsanforderung]] (IRQ)

Der Intel 8259A, meist einfach als PIC bezeichnet, besitzt 8 Interrupt-Eingänge und einen Interrupt-Ausgang. Er wird seit den ersten PCs ([[IBM PC XT]]) eingesetzt. Die Eingänge sind dabei mit den Interrupt Pins der Geräte im System verbunden (Tastatur, Timer, Drucker, usw.), der Ausgang mit der CPU.
Die 8 Eingänge reichten aufgrund der wachsenden Anzahl der Geräte im System schon bald nicht mehr aus, und es wurden stattdessen zwei PIC verwendet. Dabei wird der Ausgang des einen PIC (''Slave'') mit einem Eingang des anderen PIC (''Master'') verbunden (normalerweise am Eingang #2). Die Funktionalität dieser beiden PICs ist längst nicht mehr in separaten Chips auf modernen Mainboards implementiert, sondern wird in den Chipsatz integriert.

Nachfolgende Skizze verdeutlicht die Kaskadierung, und zeigt eine Beispielbelegung der Eingänge:

<pre>
PIC 1 (Master)
+--------------+ PIC 2 (Slave)
| IRQ 0 + <--- Timer +-------------+
| IRQ 1 + <--- Tastatur | IRQ 8 + <--- Echtzeituhr
| IRQ 2 +------------------+ | IRQ 9 + <--- ...
| IRQ 3 + <--- Seriell | | IRQ 10 + <--- ...
| IRQ 4 + <--- Seriell | | IRQ 11 + <--- ...
| IRQ 5 + <--- Soundkarte | | IRQ 12 + <--- PS/2 Maus
| IRQ 6 + <--- Floppy | | IRQ 13 + <--- Koprozessor
| IRQ 7 + <--- Parallel | | IRQ 14 + <--- Festplatte
+------+-------+ Port | | IRQ 15 + <--- Festplatte
| | +-----+-------+
| | |
| +--------------+
|
+--->>> Zur CPU
</pre>

Die meisten Eingänge sind dabei von der Architektur des PCs festgelegt, und werden nicht von anderen Geräten verwendet, selbst wenn kein entsprechendes Gerät vorhanden ist.

Die Interrupts werden in einer bestimmten Reihenfolge abgearbeitet, die beim PIC durch den Eingang festgelegt ist. Im Normalfall hat der Eingang 0 die höchste, der Eingang 7 die niedrigste Priorität. Damit ergibt sich folgende Reihenfolge: 0, 1, (2), 8, 9, 10, 11, 12, 13, 14, 15, 3, 4, 5, 6, 7. Die IRQ Nummerierung wird dabei vom Betriebssystem vorgegeben: der PIC addiert die Nummer des Eingangs zu einem konfigurierbaren Wert, und übergibt diesen dann der CPU. Die Nummerierung erfolgt aber üblicherweise wie in der Skizze angegeben.

Der IRQ 2 wird selbst nicht belegt, er ist die "Durchreiche" für die IRQs des zweiten PIC (sog. [[Kaskadenschaltung|Kaskade]], man spricht bei dieser Funktionsweise von Kaskadierung des PIC).

Die begrenzte Anzahl der Eingänge, die unflexible und langsame Programmierung und vor allem die fehlende [[Multiprozessor|Mehrprozessorsystemunterstützung]] haben zur Entwicklung eines Nachfolgers, dem [[APIC]]-System, geführt. Obwohl der PIC in aktuellen Chipsätzen zwar aus Kombatibilitätsgründen noch neben dem APIC vorhanden ist, wird er von modernen Betriebssystemen nicht mehr verwendet.



[[Kategorie:Rechnerarchitektur]]
[[Kategorie:Rechnerarchitektur]]
[[Kategorie:Controller (Hardware)]]

[[cs:Řadič přerušení]]
[[en:Programmable Interrupt Controller]]
[[it:Controllore di Interruzioni Programmabile]]
[[ja:Programmable Interrupt Controller]]
[[ms:Pengawal Sampukan boleh aturcara]]
[[nl:Programmable Interrupt Controller]]
[[ru:Контроллер прерываний]]

Aktuelle Version vom 13. Oktober 2017, 13:55 Uhr

Ein Programmable Interrupt Controller (PIC) ist ein integrierter Schaltkreis zur Verwaltung mehrerer Hardware-Interrupts und zu deren geordneter Weiterleitung an einen Prozessor (CPU). Prozessoren (z. B. Intel- und AMD-Prozessoren) weisen oft nur einen Eingang für solche Interrupt-Anforderungen auf. Daher arbeitet ein PIC als Multiplexer für die Hardware-Interrupts. In heutigen Rechnerkonstruktionen befindet er sich in der Regel in der Southbridge des Hauptplatinen­chipsatzes und leitet die Informationen über die Unterbrechung an die CPU weiter.

Für x86-Hardware existieren zwei verschiedene PICs:

Die Abkürzung PIC ist nicht mit der Mikrocontrollerfamilie PICmicro zu verwechseln.