Transparenz

Direkter Speicherzugriff

Was bedeutet direkter Speicherzugriff?

Direkter Speicherzugriff (englisch: direct memory access, kurz DMA) ist eine Methode, die es einem Ein-/Ausgabegerät (E/A-Gerät) ermöglicht, Daten direkt an den Hauptspeicher zu senden oder von diesem zu empfangen, wobei die CPU umgangen wird, um Speicheroperationen zu beschleunigen.

Der Prozess wird von einem Chip verwaltet, der als DMA-Controller (DMAC) bekannt ist.

Techopedia erklärt den direkten Speicherzugriff

Ein bestimmter Teil des Speichers wird verwendet, um Daten direkt von einem Peripheriegerät an die Hauptplatine zu senden, ohne den Mikroprozessor einzubeziehen, so dass der Prozess den Gesamtbetrieb des Computers nicht beeinträchtigt.

In älteren Computern gab es vier DMA-Kanäle mit den Nummern 0, 1, 2 und 3. Als der 16-Bit-Industriestandard-Architektur (ISA)-Erweiterungsbus eingeführt wurde, kamen die Kanäle 5, 6 und 7 hinzu.

ISA war ein Computer-Bus-Standard für IBM-kompatible Computer, der es einem Gerät ermöglichte, Transaktionen (Bus-Mastering) mit höherer Geschwindigkeit einzuleiten. Der ISA-DMA-Controller hat 8 DMA-Kanäle, von denen jeder mit einer 16-Bit-Adresse und Zählregistern verbunden ist.

ISA wurde inzwischen durch Accelerated Graphics Port (AGP)- und Peripheral Component Interconnect (PCI)-Erweiterungskarten ersetzt, die wesentlich schneller sind. Jeder DMA überträgt etwa 2 MB Daten pro Sekunde.

Die Systemressourcen eines Computers werden für die Kommunikation zwischen Hardware und Software verwendet. Die vier Arten von Systemressourcen sind:

  • E/A-Adressen.
  • Speicheradressen.
  • Unterbrechungsanforderungsnummern (IRQ).
  • Kanäle für direkten Speicherzugriff (DMA).

DMA-Kanäle werden für die Datenübertragung zwischen dem Peripheriegerät und dem Systemspeicher verwendet. Alle vier Systemressourcen sind von bestimmten Leitungen auf einem Bus abhängig. Einige Leitungen auf dem Bus werden für IRQs verwendet, einige für Adressen (die E/A-Adressen und die Speicheradresse) und einige für DMA-Kanäle.

Ein DMA-Kanal ermöglicht es einem Gerät, Daten zu übertragen, ohne die CPU einer Arbeitsüberlastung auszusetzen. Ohne die DMA-Kanäle kopiert die CPU alle Daten über einen Peripheriebus vom E/A-Gerät. Durch die Verwendung eines Peripheriebusses ist die CPU während des Lese-/Schreibvorgangs ausgelastet und kann keine andere Arbeit ausführen, bis der Vorgang abgeschlossen ist.

Mit DMA kann die CPU andere Aufgaben bearbeiten, während die Datenübertragung durchgeführt wird. Die Übertragung von Daten wird zunächst von der CPU initiiert. Der Datenblock kann vom DMAC auf drei Arten zum und vom Speicher übertragen werden.

Im Burst-Modus wird der Systembus erst freigegeben, wenn die Datenübertragung abgeschlossen ist. Im Cycle-Stealing-Modus wird der Systembus während der Datenübertragung zwischen dem DMA-Kanal und dem E/A-Gerät für einige Taktzyklen freigegeben, damit die CPU andere Aufgaben ausführen kann.

Wenn die Datenübertragung abgeschlossen ist, erhält die CPU eine Interrupt-Anforderung vom DMA-Controller. Im transparenten Modus kann der DMAC den Systembus nur dann übernehmen, wenn er vom Prozessor nicht benötigt wird.

Die Verwendung eines DMA-Controllers kann jedoch zu Cache-Kohärenzproblemen führen. Die im RAM gespeicherten Daten, auf die der DMA-Controller zugreift, werden möglicherweise nicht mit den richtigen Cache-Daten aktualisiert, wenn die CPU externen Speicher verwendet.

Zu den Lösungen gehören das Leeren der Cache-Zeilen vor dem Start ausgehender DMA-Übertragungen oder die Durchführung einer Cache-Invalidierung bei eingehenden DMA-Übertragungen, wenn dem Cache-Controller externe Schreibvorgänge signalisiert werden.

Verwandte Begriffe

Margaret Rouse
Redaktion

Margaret Rouse ist eine preisgekrönte technische Autorin und Dozentin. Sie ist für ihre Fähigkeit bekannt, komplexe technische Themen simpel und nachvollziehbar zu erklären. In den letzten zwanzig Jahren sind ihre Erklärungen auf TechTarget-Websites erschienen und sie wurde in Artikeln der New York Times, des Time Magazine, USA Today, ZDNet, PC Magazine und Discovery Magazine als Quelle und Expertin zitiert. Wenn Sie einen Vorschlag für eine neue Definition haben oder eine technische Erklärung verbessern möchten, schicken Sie einfach Margaret eine E-Mail oder kontaktieren Sie sie auf LinkedIn oder Twitter.