DMA - Direct Memory Access

Soll von einer Eingabe-Ausgabe-Einheit Daten direkt in den Arbeitsspeicher geschrieben werden, so muss das der Prozessor veranlassen. Erst ließt er die Daten in sein internes Register. Und erst dann schreibt er es in den Arbeitsspeicher. Dafür sind mehrere Taktschritte notwendig, die die Ausführungsgeschwindigkeit laufender Programme verringert, weil der Prozessor mit dem Lesen und Schreiben von Daten beschäftigt ist. Um diese Verarbeitungsschritte vom Prozessor fern zu halten, gibt es den Direct Memory Access (DMA).

Unter DMA (übersetzt direkter Speicherzugriff) ist eine Schaltungs- und Steuermaßnahme zu verstehen, die über spezielle Datenleitungen auf dem Motherboard eine Verbindung zwischen Erweiterungen/Peripherie und dem Arbeitsspeicher herstellen. Dadurch können die Daten ohne Umweg über den Prozessor direkt in den Speicher geschrieben werden. So lässt sich die Ausführungsgeschwindigkeit eines ganzen Systems erhöhen.

Zuordnung der DMA-Kanäle

Übersicht der DMA-Kanäle in einem Computer (Windows 98SE) Übersicht der DMA-Kanäle in einem Computer (Windows 98SE)
Zuordnung der DMA-Kanäle unter Windows 98 SE Zuordnung der DMA-Kanäle unter Windows XP

Insgesamt gibt es nur eine echte DMA-Leitung. Der Zugriff der unterschiedlichen Komponenten (Steckkarten und Peripherie) wird anhand eines Index unterschieden. Demnach darf ein DMA-Index nur einem Gerät zugeordnet werden. Der Index gibt die Nummer des DMA-Kanals an. Insgesamt gibt es 8 DMA-Kanäle. Die Kanäle 0, 2 und 4 sind für interne Zwecke bereits fest vergeben. Die Kanäle 1, 3, 5, 6 und 7 können frei belegt werden. Die Kanäle 0, 1, 2 und 3 arbeiten mit 8 Bit. Die Kanäle 4, 5, 6 und 7 arbeiten mit 16 Bit.

Funktionsweise des DMA-Controllers

Übersicht DMA-Controller
Der DMA-Controller (DMA-C) ist in den Chipsätzen fest integriert. Er ist dafür gedacht, Daten zwischen Arbeitsspeicher und Peripherie zu transportieren und den Prozessor mit diesen Aufgaben zu entlasten. In Zeiten, als es noch sehr langsame Prozessoren gab, machte sich der Geschwindigkeitsunterschied bei großen Datenmengen deutlich bemerkbar.

Will der Prozessor Daten senden oder empfangen, trennt der DMA-Controller den Prozessor vom Bussystem. Der DMA-Controller führt dann die Anforderung mit hoher Geschwindigkeit aus. Danach wird die Verbindung zwischen Prozessor und Bussystem wieder hergestellt. Für den Speichertransfer benötigt der Prozessor ca. 40 Takte. Der DMA-Controller führt den Zugriff innerhalb von 4 Takten aus.