DMA
DMA steht für Direct Memory Access und ist ein Begriff aus der Computertechnik.Die DMA-Technik erlaubt angeschlossenen Peripheriegeräten, wie Netzwerkkarte oder Soundkarte, ohne Umweg über die CPU direkt miteinander zu kommunizieren. Der Vorteil der DMA-Technik ist die schnellere Datenübertragung bei gleichzeitiger Entlastung des Prozessors.
Die klassische DMA-Technik des ISA-Busses basiert dabei auf der Signalisierung der Peripherie für Transferbedarf durch einzelne Datenleitungen, die sogenannten DMA-Kanäle. Wird nun solch ein Kanal aufgesteuert, so liefern Schaltkreise, die der Bus-Steuerung zugehörig sind, Adressen auf den Bus, die je Zyklus inkrementiert oder konstant gehalten sein können, während der initiierende periphere Schaltkreis entweder die aufgeschalteten Daten entgegennimmt oder aber selbst Daten auf den Bus aufschaltet. Da DMA die normale Bus-Tätigkeit unterbricht, ist eine Operation mit der CPU in diesem Zeitraum nicht möglich. Da es mehrere DMA-Initiatoren gibt, muss mit entsprechenden Prioritätsschemata gearbeitet werden. Weiterhin muss ein DMA-Kanal zunächst initialisiert werden und die Beschaltung des Busses mit Adress- und Steuersignalen muss ebenso erst per Software vorgegeben werden. Nach erfolgreichem Transfer wird meist ein Interrupt ausgelöst, der der System-Software mitteilt, dass der Vorgang abgeschlossen ist. Daraufhin werden die DMA-Schaltkreise meist so umprogrammiert, dass sie auf den nächsten zu bearbeitenden Datenblock verweisen.
Für die heutigen Implementierungen ist das Bus Mastering entscheidend. Es ist zwar ebenfalls eine Punkt-zu-Punkt Verbindung zwischen zwei Komponenten, die nicht die CPU sind, unterscheidet sich jedoch von der klassischen Methode dadurch, dass weder DMA-Kanäle existieren, noch dass die Adressierung durch einen Schaltkreis des Busses vorgenommen wird. Vielmehr reserviert der anfordernde Schaltkreis den Bus für sich und adressiert diesen auch selbst. Jede Komponente, wie Prozessor oder periphere Bauteile können dabei der Initiator sein, der die Befehlsmacht über Adressierung, Datentransfer und Bussteuersignale übernimmt. Der Bus-Master überträgt nun seinem Ziel, dem Target, die für ihn vorgesehenen Daten. Bus-Master kann prinzipell nur ein Bauteil zur selben Zeit sein. PCI-Controller können zugleich auch DMA-Busmaster sein.