Damit der Datenfluß in einem PC überall
reibungslos und ungehindert fließen
kann, ist eine effiziente Kommunikation
mit den beteiligten Subsystemen und
eine hierarchische Ordnungsstruktur
notwendig. In einem PC wird das mit
Hilfe der Interrupt-Leitungen und der
DMA-Kanäle erreicht. Jedem logischen
“Gerät” (englisch: “device”), zum Bei-
spiel dem Joystick-Anschluß oder der
Soundkarte, werden eine oder mehrere
I/O-Adressen zugewiesen, die zum
Datenaustausch mit dem Prozessor die-
nen. Im PC ist hierfür ein spezieller
I/O-Adressenbereich reserviert (I/O =
Input/Output). Um den schnellen Daten-
transport zwischen den “Geräten” und
dem Prozessor sowie zwischen den
“Geräten” untereinander zu gewährlei-
sten, gibt es im PC zwei verschiedene
Arten von Signalleitungen: die IRQ-Lei-
tungen und die DMA-Kanäle.
IRQ
Die Abkürzung “IRQ” bedeutet “Interrupt
Request”, auf deutsch etwa “Unterbre-
chungsanforderung”. Ein Interruptsig-
nal, das der Prozessor über eine der
vorhandenen Interruptleitungen erhält,
ist eigentlich ein Stopsignal. Der Prozes-
sor muß seine Arbeit unterbrechen und
sich sofort einer unaufschiebbaren Auf-
gabe widmen, deren Erledigung das
interruptauslösende “Gerät” verlangt.
Danach kehrt der Prozessor zu seiner
vorangegangenen Tätigkeit zurück.
Die Koordination und weitere Behand-
lung der Interrupts ist Aufgabe eines
speziellen Chips, des Interrupt-Control-
lers. Beim alten PC-XT waren ursprüng-
lich 8 Interruptleitungen vorhanden;
später schaltete man zwei
Interrupt-Controller hintereinander, so
daß nun theroretisch insgesamt 15
Interruptleitungen verfügbar sind. Da
jedoch einige IRQs von internen
Systemkomponenten wie dem
Timer-Chip, dem Tastatur-Controller und
dem Coprozessor belegt werden, blei-
ben für zusätzliche “Geräte” wie ISA-
und PCI-Steckkarten nur noch wenige
IRQs frei. In Tabelle 1 sind die IRQs und
die ihnen zugeordneten Systemkom-
ponenten aufgelistet.
Die IRQs 2 und 9 bedürfen einer beson-
deren Erklärung: IRQ 9 des zweiten
IRQ-Controllers ersetzt eigentlich IRQ 2
des ersten, so daß IRQ 2 und IRQ 9 die
gleiche Funktion haben. Das kann in
einigen Fällen dazu führen, daß ein
“Gerät”, das IRQ 2 oder IRQ 9 benutzt,
nicht zufriedenstellend arbeitet. In aller
Regel kann die zugehörige Software mit
einer der beiden IRQ-Leitungen pro-
blemlos arbeiten, nicht aber wahlweise
mit beiden. In einem solchen Fall
macht es daher Sinn, versuchsweise
von IRQ 2 auf IRQ 9 (bzw. umgekehrt) zu
wechseln.
Die Prioritätsverteilung, also die Reihen-
folge der Abarbeitung beim gleichzei-
tigen Auftreten mehrerer Interrupts, ist
festgelegt und verläuft grundsätzlich
von der niedrigeren zur höheren
IRQ-Nummer (IRQ 0 hat z. B. Vorrang vor
IRQ 1 usw.). Infolge der Reihenschal-
tung von zwei Interrupt-Controller-ICs ist
diese Hierachie jedoch, wie aus Tabelle
1 hervorgeht, nur bedingt gültig.
An den Slots der Erweiterungskarten lie-
gen nicht sämtliche IRQ-Leitungen an.
Einige sind nur mit den zugeordneten
Systemkomponenten auf der Haupt-
platine verbunden, außerdem fehlen
an den kurzen 8-Bit-ISA-Slots die IRQ-Lei-
tungen mit den höheren Nummern. Bei
den PCI-Steckplätzen sind dagegen
alle nutzbaren IRQ-Leitungen vorhan-
den. Aus Tabelle 1 ist ersichtlich, daß für
Erweiterungen nicht mehr allzu viele
IRQs übrigbleiben. Normalerweise ste-
hen dafür nur die IRQs 5, 9, 10, 11 und
12 zur Verfügung. Da viele neuere
Soundkarten bereits zwei IRQs belegen
und auch die meisten Grafikkarten
nicht ohne eigene IRQ-Leitung aus-
kommen, bleiben in einem Multime-
dia-System nur noch zwei IRQ-Leitungen
zur freien Verfügung übrig.
DMA
Direct Memory Access, abgekürzt
“DMA”, ist ein Verfahren, bei dem eine
Systemkomponente unmittelbar auf
eine andere zugreift. Während ein
Interrupt den Prozessor veranlaßt, seine
aktuelle Arbeit zu unterbrechen, um die
zugehörige Interruptroutine abzuarbei-
ten, ist ein DMA-Zugriff ohne die Hilfe
des Prozessors möglich. Die System-
komponente tauscht Daten auf direk-
tem Weg mit einer anderen aus, so daß
der übrige Programmablauf nicht
beeinträchtigt wird. Ein spezieller
DMA-Controller sorgt dafür, daß es
dabei nicht zu Kollisionen kommt.
Während eines DMA-Zugriffs übernimmt
der DMA-Controller zeitweise die
gesamte Steuerung des Systembusses
und gibt sie nach getaner Arbeit an
den Prozessor zurück. Auf diese Weise
kann zum Beispiel eine Soundkarte (mit
Unterstützung des DMA-Controllers) digi-
talisierte Klangmuster direkt im Arbeits-
speicher des Computers ablegen.
Auch für DMA sind nur eine begrenzte
Anzahl von “Kanälen” verfügbar, von
denen einige bereits standardmäßig
an Systemkomponenten vergeben
sind. Ursprünglich waren beim alten
PC-XT nur vier DMA-Kanäle vorhanden,
mit Einführung des AT wurden sie auf
acht erweitert. Die höheren
X-12 - 6/98 Elektor
EXTRA
———————————————————— PC-P
LUS
Die Datenkommunikation zwischen den Komponenten
eines Computersystems muß nach bestimmten Regeln
ablaufen, damit Kollisionen und Crashs vermieden wer-
den. Eine wichtige Rolle fällt dabei den IRQ- und
DMA-Leitungen zu. Dieser Artikel gibt einen kurzen
Überblick über die Funktionen der IRQs und DMAs, und
anschließend wird gezeigt, wie man bei einem moder-
nen PC eventuellen Problemen und Konflikten (möglichst)
aus dem Weg geht.
IRQ- und DMA-Geheimnisse
Verkehrsregeln im Computer
DMA-Kanäle sind allerdings an den
8-Bit-ISA-Slots nicht verfügbar. Der
Bedarf an DMA-Kanälen ist zum Glück
nicht allzu groß; er ist auf solche Syste-
merweiterungen beschränkt, die in kür-
zester Zeit große Datenmengen bewe-
gen müssen.
Problemlösungen
Wenn zwei Systemkomponenten die
gleiche IRQ-Leitung oder den gleichen
DMA-Kanal gleichzeitig benutzen,
kommt es fast immer zu Konflikten, die
das Systemverhalten und die Stabilität
ernsthaft gefährden. Es gibt verschie-
dene Möglichkeiten, die aktuelle Bele-
gung der IRQs und DMAs herauszufin-
den. Unter Windows 95 ist das ganz ein-
fach: Man schaut unter “Einstellungen
- Systemsteuerung - System - Geräte-
manager - Eigenschaften” nach (bei
der englischen Version: “Settings - Con-
trol Panel - System - Device Manager -
Properties). Wer noch mit Windows 3.1
oder mit DOS arbeitet, kann das Pro-
gramm MSD (Microsoft Diagnostics) zu
Hilfe nehmen, das bei den letzten DOS-
Versionen und auch bei Windows 3.1
zum Programmpaket gehörte.
Serielle Schnittstellen
Ein durchschnittlicher neuerer PC ist in
der Regel mit zwei seriellen Schnittstel-
len (COM 1 und COM 2) ausgestattet,
die die IRQs 4 bzw. 3 belegen. An COM
1 (IRQ 4) wird normalerweise die Maus
angeschlossen, und ein externes
Modem ist mit COM 2 (IRQ 3) verbun-
den. Interne Modems lassen sich fast
immer auch als COM 3 oder COM 4
konfigurieren. In diesem Fall muß die
Modemkarte auf COM 4 (IRQ 3) einge-
stellt werden, weil sie anderenfalls mit
der Maus an COM 1 (IRQ 4) in Konflikt
gerät. Der Grund: COM 1 und COM 3
benutzen gemeinsam IRQ 4, COM 2
und COM 4 teilen sich IRQ 3. Die
gleichzeitige Nutzung von COM 1 und
COM 3 bzw. von COM 2 und COM 4 ist
deshalb nicht möglich.
Wenn auch noch ein Grafiktablett oder
eine Infrarot-Fernbedienung ange-
schlossen werden soll, wird die Maus
am besten auf den speziellen
PS/2-Mausanschluß verlegt, der auf den
meisten Pentium-Hauptplatinen zusätz-
lich vorhanden ist. Allerdings muß die
Maus auch für diese Art des Anschlus-
ses geeignet sein. Standardmäßig ist
IRQ 12 für die PS/2-Maus reserviert. Falls
keine PS/2-Maus benutzt wird, kann
man IRQ 12 bei den meisten Haupt-
platinen durch Jumper- oder Bios-Ein-
stellung für andere Zwecke freigeben.
Trotzdem hat Windows 95 manchmal
Probleme, IRQ 12 als freie Interruptlei-
PC-P
LUS
———————————————————
Elektor
EXTRA
X-13 - 6/98
Bild 1: Beispiel für die IRQ- und DMA-Belegung eines mit Windows 95 arbeitenden
Systems.
tung zu erkennen, so daß IRQ 12 nicht
immer uneingeschränkt belegt werden
kann.
Parallele Schnittstellen
Die parallele Druckerschnittstelle LPT 1
belegt standardmäßig IRQ 7; dies gilt
sowohl für den normalen Druckeran-
schluß als auch für den Druckeran-
schluß nach EPP-Spezifikation. Wenn
der Druckeranschluß im Bios als
ECP-Anschluß konfiguriert wurde, kommt
ein DMA-Kanal (DMA 3) hinzu. Eine
zweite Parallelschnittstelle belegt nor-
malerweise IRQ 5.
Grafikkarten
Eigentlich benötigt eine Grafikkarte
keine Interruptleitung und keinen
DMA-Kanal. Wegen der erweiterten
Funktionalität der meisten modernen
Grafikkarten stimmt dies heute in aller
Regel nicht mehr. Ältere, mit dem
S3-Chip ausgestattete Grafikkarten
waren dafür bekannt, daß man sie
nicht davon abbringen konnte, den
IRQ 11 zu belegen. Das führte häufig zu
folgenschweren Konflikten und System-
abstürzen. Die neueren Grafikkarten
verhalten sich meistens flexibler und
können sich während des Bootens auf
einen freien Interrupt selbst einstellen.
Normalerweise belegt die Grafikkarte
einen der drei Interrupts 9, 10 oder 11.
Soundkarten
Ein recht häufiges Sorgenkind ist die
Soundkarte, denn sie belegt gleich
mehrere IRQs bzw. DMA-Kanäle. Früher
nahm die 8-Bit-Soundblasterkarte IRQ 5
und DMA 0 (oder DMA 1) für sich in
Anspruch, weil man davon ausging,
daß die zweite Parallelschnittstelle (IRQ
5) nicht vorhanden war oder nicht stän-
dig genutzt wird. Zur Erinnerung: Zwei
Systemkomponenten (“Geräte”) können
zwar den gleichen Interrupt belegen,
ihn aber nicht gleichzeitig nutzen. Die
heutigen 16-Bit-Soundblasterkarten
(auch die neueren Versionen wie z. B.
die AWE 64) belegen ebenfalls nur eine
Interruptleitung, sie benötigen aber
zwei DMA-Kanäle (z. B. DMA 1 und DMA
5), weil der Datentransport im 16-Bit-For-
mat stattfindet. Soundkarten anderer
Hersteller sind oft noch anspruchsvoller;
außer den beiden DMA-Kanälen müs-
sen für sie gleich zwei IRQ-Leitungen
reserviert werden.
Netz- und SCSI-Karten
Da in Rechnernetzen naturgemäß
große Datenmengen transportiert wer-
den, benötigen auch diese Karten eine
Interruptleitung (z. B. IRQ 9, 10, 11 oder
12) und einen DMA-Kanal (meistens
einen 16-Bit-Kanal).
Spezielle Karten
Einem extern anzuschließenden Gerät,
zum Beispiel einem Scanner, liegt häu-
fig eine spezielle Steckkarte bei, die
ebenfalls eine IRQ-Leitung belegt. Man-
che derartige Karten begnügen sich
auch mit einem I/O-Adressenbereich
und tauschen Daten mit dem Prozessor
nach dem Polling-Verfahren aus (der
Prozessor fragt die Karte zyklisch ab).
Diese Methode ist zwar etwas langsa-
mer, was jedoch in vielen Fällen nicht
störend in Erscheinung tritt.
Neuere TV-Tuner-Karten schreiben die
Daten über den PCI-Bus direkt in den
Bildspeicher der Grafikkarte. Auch dafür
ist eine eigene IRQ-Leitung und ein
DMA-Kanal nötig.
An dieser Stelle ist sicher deutlich, daß
es beim Einbau mehrerer Erweiterungs-
karten hinsichtlich der IRQ- und DMA-
Vergabe zu einem bedrohlichen
Gedränge kommen kann. Zum Glück
braucht sich der Computernutzer heute
um die Konfliktvermeidung immer sel-
tener zu kümmern. Wenn die Hauptpla-
tine und die Zusatzkarten den neueren
Spezifikationen entsprechen, läuft die
IRQ- und DMA-Vergabe dank der “Intel-
ligenz” der Systemkomponenten beim
Booten automatisch ab. Für ältere
ISA-Karten gilt dies noch nicht, sie müs-
sen meistens noch von Hand konfigu-
riert werden. PCI-Karten können auch
den selben Interrupt gleichzeitig benut-
zen (das Verfahren heißt “IRQ Sharing”);
hierbei erkennt die Software, welche
Karte den Interrupt ausgelöst hat.
Bios-Einstellungen
Die auf einer modernen Hauptplatine
integrierten peripheren Systemkompo-
nenten benutzen die IRQs und DMAs,
die ihnen über das Bios zugeordnet
wurden. Für die seriellen Schnittstellen
stehen mehrere I/O-Adressenbereiche
und oft auch mehrere IRQs zur Wahl.
Das ist zum Beispiel dann von Vorteil,
wenn man einer Modemkarte den seri-
ellen Anschluß COM 3 zuweisen
möchte, obwohl die Karte hard-
waremäßig auf COM 4 eingestellt ist.
Auch zwei parallele Schnittstellen lassen
sich auf diese Weise vertauschen, so
daß im ECP-Modus zwei DMA-Kanäle
und zwei oder drei IRQs wahlweise ver-
fügbar sind. Wenn der zweite, auf der
Hauptplatine befindliche IDE-Controller
nicht genutzt wird, kann man ihn über
das Bios außer Betrieb setzen. IRQ 15 ist
dann für andere Zwecke frei.
982051
X-14 - 6/98 Elektor
EXTRA
———————————————————— PC-P
LUS
Tabelle 1 Standardzuordnung und Prioritäten der Interruptleitungen beim PC-AT und seinen Nach-
folgern.
IRQ
Priorität
Lokalisierung
Basis-I/O-Adresse
Systemkomponente
0
0
Hauptplatine 040...048
System-Timer
1
1
Hauptplatine
060...064
Tastatur
2
2
Hauptplatine
zweiter IRQ-Controller (IRQ 10...15)
3
9
8-Bit-ISA-Slot
2F8...2FF/2E8...2EF
serielle Schnittstellen COM 2 und COM 4
4
10
8-Bit-ISA-Slot
3F8...3FF/3E8...3EF
serielle Schnittstellen COM 1 und COM 3
5
11
8-Bit-ISA-Slot
(278...27F)
frei (parallele Schnittstelle LPT 2)
6
12
8-Bit-ISA-Slot
3F0...3F7
Floppy Disk Controller
7
13
8-Bit-ISA-Slot
378...37F
parallele Schnittstelle LPT 1
8
14
Hauptplatine
070...07F
Echtzeituhr
9
2
8-Bit-ISA-Slot
Ersatz für IRQ 2
10
3
16-Bit-ISA-Slot
frei
11
4
16-Bit-ISA-Slot
frei
12
5
16-Bit-ISA-Slot
frei (PS/2-Bus-Maus)
13
6
Hauptplatine
0F0...0FF
Coprozessor
14
7
16-Bit-ISA-Slot
1F0...1F7
erster IDE-Controller
15
8
16-Bit-ISA-Slot
(170...177)
frei (zweiter IDE-Controller)
(höchste Priorität: 0, niedrigste Priorität: 14)
Tabelle 2 Standardzuordnung der DMA-Kanäle.
DMA
Lokalisierung
Systemkomponent
0
16-Bit-ISA-Slot
frei
1
8-Bit-ISA-Slot
frei (Soundkarte)
2
8-Bit-ISA-Slot
Floppy Disk Controller
3
8-Bit-ISA-Slot
frei (parallele ECP-Schnittstelle oder Soundkarte)
4
Hauptplatine
Kopplung von erstem und zweitem DMA-Controller
5
16-Bit-ISA-Slot
frei (Soundkarte)
6
16-Bit-ISA-Slot
frei
7
16-Bit-ISA-Slot
frei