DMA - Direct Memory Access

  • Ohne DMA ist eine Funktion des Computers heute nicht denkbar. Aber worum geht es dabei eigentlich? Jeder, der schon einmal einen PC neu installiert oder eingerichtet hat, kennt z. B. die Frage: Möchten Sie die Laufwerke im DMA-Modus einrichten? Aber wenn ja, warum? Die Erklärung ist eigentlich ganz einfach. Der DMA-Modus ist schneller als andere auf dem PC verfügbaren Modi. Hier nun eine kleine Erklärung: Sollen von einer Eingabe-Ausgabe-Einheit Daten direkt in den Arbeitsspeicher geschrieben werden, so muss dies der Prozessor veranlassen. Erst liest er die Daten in sein internes Register. Danach schreibt er sie in den Arbeitsspeicher. Dafür sind viele Taktschritte notwendig, die die Ausführungsgeschwindigkeit laufender Programme verlangsamen. Unter DMA (übersetzt: Direkter Speicherzugriff) ist eine Schaltungs- und Steuerungsmaßnahme zu verstehen, die über spezielle Datenleitungen auf dem Motherboard eine Verbindung zwischen Steckkarten und dem Arbeitsspeicher herstellt. Dadurch können die Daten ohne Umweg über den Prozessor direkt in den Speicher geschrieben werden. So lässt sich die Ausführungsgeschwindigkeit erhöhen. Es gibt nur eine reelle DMA-Leitung. Der Zugriff der unterschiedlichen Komponenten (Steckkarten) 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 In modernen Chipsätzen ist der DMA-Controller (DMA-C) fest integriert. Ältere Motherboards haben einen separaten Baustein. 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. Der DMA-Controller ist dafür gedacht, Daten zwischen Arbeitsspeicher und Peripherie zu transportieren und den Prozessor mit diesen Aufgaben zu entlasten. In Zeiten von langsamen Prozessoren machte sich der Geschwindigkeitsunterschied bei großen Datenmengen bemerkbar.