Wenn ein Spiel eine neue Karte lädt oder ein Video startet, müssen viele Daten in den Arbeitsspeicher gelangen. Der Prozessor könnte dabei jeden kleinen Schritt selbst steuern. Dann hätte er aber weniger Zeit für seine eigentliche Rechenarbeit.
Warum Datenbewegung Arbeit macht
Der Prozessor ist die Recheneinheit des Computers. Er führt Befehle aus.
Der Arbeitsspeicher ist ein schneller Speicher für Daten und Programme, die gerade gebraucht werden. Er heißt auch RAM.
Geräte wie eine SSD oder eine Netzwerkkarte liefern oft viele Daten. Ohne Hilfe müsste der Prozessor die Übertragung ständig begleiten.
Ein Spiel lädt Bild- und Tondaten von einer SSD in den Arbeitsspeicher. Das sind sehr viele Datenstücke, die nacheinander verschoben werden müssen.
Viele Daten zu verschieben soll den Prozessor möglichst wenig aufhalten.
Was DMA bedeutet
DMA bedeutet Direct Memory Access, auf Deutsch direkter Speicherzugriff. Es ist eine Technik, mit der Daten zwischen einem Gerät und dem Arbeitsspeicher übertragen werden können, ohne dass der Prozessor jeden einzelnen Schritt erledigt.
Ein DMA-Controller ist eine Steuereinheit für diese Übertragung. Der Prozessor richtet den Auftrag ein. Danach bewegt der DMA-Controller die Daten.
DMA-Controller: Eine Steuereinheit, die eine Datenübertragung zwischen einem Gerät und dem Arbeitsspeicher organisiert.
Eine Netzwerkkarte empfängt viele Daten aus dem Internet. Der Prozessor beauftragt den DMA-Controller, diese Daten im Arbeitsspeicher abzulegen. Währenddessen kann der Prozessor andere Befehle ausführen.
Interaktiver Lückentext wird geladen ...
So arbeitet eine DMA-Übertragung
Der Prozessor teilt dem DMA-Controller mit, wo die Daten beginnen, wohin sie sollen und wie viele Daten übertragen werden.
Die Quelle ist der Ort, an dem die Daten liegen. Das Ziel ist der Ort, an den sie kopiert werden sollen. Eine Speicheradresse ist eine genaue Nummer für einen Platz im Arbeitsspeicher.
Der DMA-Controller fordert dann den Zugriff auf den Speicher an. Nach der Übertragung sendet er einen Interrupt. Ein Interrupt ist ein Signal an den Prozessor, dass ein Ereignis eingetreten ist und beachtet werden soll.
Ein Gerät soll 1 000 Datenblöcke in den Arbeitsspeicher schreiben.
- Der Prozessor nennt Quelle, Ziel und Datenmenge.
- Der DMA-Controller überträgt die 1 000 Blöcke.
- Der DMA-Controller sendet einen Interrupt.
- Der Prozessor kann die bereitliegenden Daten weiterverarbeiten.
Der Prozessor verschwindet bei DMA nicht aus dem Ablauf. Er bereitet die Übertragung vor und reagiert auf die Abschlussmeldung. Die vielen einzelnen Datenbewegungen übernimmt der DMA-Controller.
Interaktive Quizfrage wird geladen ...
Warum DMA den Prozessor entlastet
Der Bus ist ein gemeinsamer Transportweg im Computer. Über ihn können Daten und Steuersignale zwischen Bauteilen unterwegs sein.
Prozessor und DMA-Controller brauchen beide Zugriff auf den Arbeitsspeicher. Deshalb fordert der DMA-Controller den Bus an und teilt sich diesen Zugang mit dem Prozessor. Der Prozessor kann dabei manchmal kurz warten.
Trotzdem ist DMA bei großen Datenmengen meist sinnvoll: Der Prozessor muss nicht jeden einzelnen Datenblock selbst bewegen.
Eine Kamera überträgt ein großes Bild in den Arbeitsspeicher. Der DMA-Controller kümmert sich um die vielen Bilddaten. Der Prozessor kann in dieser Zeit zum Beispiel Befehle eines anderen Programms bearbeiten.
DMA macht nicht unbedingt jedes einzelne Datenstück schneller. Der wichtige Vorteil ist die freie Zeit für den Prozessor.
Typische Einsätze von DMA
DMA wird vor allem bei Geräten verwendet, die viele Daten senden oder empfangen. Dazu gehören SSDs, Netzwerkkarten, Soundkarten, Grafikkarten und viele USB-Geräte.
Eine Grafikkarte kann große Bilddaten bewegen. Eine Netzwerkkarte kann empfangene Daten im Arbeitsspeicher ablegen. Erst danach verarbeitet ein Programm diese Daten.
Interaktive Lernkarten wird geladen ...
Interaktive Quizfrage wird geladen ...
Zusammenfassung
DMA ist eine Technik für Datenübertragungen zwischen Geräten und Arbeitsspeicher. Der Prozessor legt Quelle, Ziel und Datenmenge fest. Ein DMA-Controller übernimmt die Übertragung und meldet das Ende mit einem Interrupt.
Bei großen Datenmengen transportiert der DMA-Controller die Daten. Der Prozessor gewinnt Zeit für andere Aufgaben.
Mit Google fortfahren