2.3.5.2 Direkt kann wirklich direkt bedeuten

[gesichtete Version][gesichtete Version]
Zeile 22: Zeile 22:
# Der Festplatten-Controller ist mit dem (Daten-) Bus verbunden und legt die Daten auf selbigen.
# Der Festplatten-Controller ist mit dem (Daten-) Bus verbunden und legt die Daten auf selbigen.
# Der Hauptspeicher ist ebenfalls mit dem (Daten-) Bus verbunden und kann die Daten sofort entgegennehmen, dabei sorgt der DMA-Controller über Steuer- und Adressbus dafür, dass der Hauptspeicher erfährt, wohin die Daten gespeichert werden müssen.
# Der Hauptspeicher ist ebenfalls mit dem (Daten-) Bus verbunden und kann die Daten sofort entgegennehmen, dabei sorgt der DMA-Controller über Steuer- und Adressbus dafür, dass der Hauptspeicher erfährt, wohin die Daten gespeichert werden müssen.
</p>
<p>
Es kommt also auf das Zusammenspiel zwischen dem DMA-Controller, dem Bussystem, dem Hauptspeicher und dem weiteren beteiligten DMA-fähigen Gerät an. Um einen möglichst schnellen Datentransfer zu erreichen macht es allemal Sinn, die Daten ohne Umweg zu transportieren.
</p>
<br />
<p>
<loop_area type="notice">
<p>
Du hast bereits bemerkt, dass an dieser Stelle eine stark vereinfachte Darstellung des Sachverhalts erfolgt. Generell wird hier davon ausgegangen,
</p>
<p>
* dass das Bussystem für die Datenübertragung per DMA zur Verfügung steht,
* dass sich CPU und DMA-Controller "irgendwie" einigen, wer gerade den Bus benutzen darf,
* dass Datenkollisionen auf dem Bus "irgendwie" vermieden werden.
</p>
</loop_area>
</p>
</p>



Version vom 3. Februar 2015, 23:51 Uhr

Direkt kann wirklich direkt bedeuten

Ohne den DMA-Controller wurden Daten immer über dem Umweg CPU transportiert. Dieses Video hat den Ablauf beispielhaft gezeigt.

Beispiel

Umweg über CPU

  1. Kopiere ein Datenwort über das Bussystem von der Festplatte in ein Register auf der CPU.
  2. Kopiere das Datenwort über das Bussystem von dem Register auf der CPU in den Hauptspeicher.


Ohne Umweg, also direkt

Mit DMA-Controller können die Daten den direkten Weg nehmen, wie das folgende Beispiel zeigt:

  1. Der DMA-Controller fordert Daten beim Festplatten-Controller an.
  2. Der Festplatten-Controller ist mit dem (Daten-) Bus verbunden und legt die Daten auf selbigen.
  3. Der Hauptspeicher ist ebenfalls mit dem (Daten-) Bus verbunden und kann die Daten sofort entgegennehmen, dabei sorgt der DMA-Controller über Steuer- und Adressbus dafür, dass der Hauptspeicher erfährt, wohin die Daten gespeichert werden müssen.

Es kommt also auf das Zusammenspiel zwischen dem DMA-Controller, dem Bussystem, dem Hauptspeicher und dem weiteren beteiligten DMA-fähigen Gerät an. Um einen möglichst schnellen Datentransfer zu erreichen macht es allemal Sinn, die Daten ohne Umweg zu transportieren.


Hinweis

Du hast bereits bemerkt, dass an dieser Stelle eine stark vereinfachte Darstellung des Sachverhalts erfolgt. Generell wird hier davon ausgegangen,

  • dass das Bussystem für die Datenübertragung per DMA zur Verfügung steht,
  • dass sich CPU und DMA-Controller "irgendwie" einigen, wer gerade den Bus benutzen darf,
  • dass Datenkollisionen auf dem Bus "irgendwie" vermieden werden.


DMA-Controller.jpg