Skip to main content

DMA - Controller

Direct Memory Access-Controller ist eine Hardware-Komponente, die die Geschwindigkeit des Gesamtsystems erhöht.

→ Erreicht werden soll dies durch Reduzierung der Anzahl an Interrupts, die bei der Kommunikation zwischen der CPU und den E/A-Geräten ausgelöst werden und durch die Spezialisierung des DMA-Controllers.
→ Die Daten sollen zwischen dem Hauptspeicher und einem weiteren DMA-fähigen Peripheriegerät übertragen werden.

  • Vorher: Bei einem Datentransfer ohne DMA-Controller ereignete sich ein Interrupt pro Datenwort.
  • mit DMA-Controller: nur noch ein Interrupt für die gesamte Übertragung
  • Lösung: Datenwörter direkt zwischen dem Hauptspeicher und einem DMA-fähigen Peripheriegerät auszutauschen
  • CPU muss lediglich zu Beginn und am Ende der Übertragung eingreifen.

Allgemeiner Ablauf

image-1660641644972.png

1. Die CPU versorgt aus Steuerwerk DMA-Controller mit Informationen zu beteiligte Komponenten, Start- und Zieladresse, Anzahl zu übertragener Datenwörter und Übertragungsrichtung und erteilt  DMA-Controller Erlaubnis, mit Datenübertragung zu beginnen.
2. Der DMA-Controller steuert die Übertragung aller Datenwörter 
3. HD gibt die Datenwörter zurück 
4. DMA lässt die Datenwörter auf den RAM schreiben 

  • Wenn alle Daten übertragen sind, informiert DMA-Controller mit einem Interrupt über den Abschluss des Datentransfers
  • Der Interrupt-Controller empfängt den Interrupt und leitet ihn an die CPU weiter
  • Auf CPU wird die zugehörige ISR ausgeführt und die Datenübertragung per DMA ist abgeschlossen.