Zusammenspiel von DMA und MMU

Gast #701650
Lesenswert?

1) DMA erlaubt einer Peripheriekomponente direkt
aus dem RAM zu lesen oder in den Ram zu schreibe.
Allerdings muss während dessen dir CPU vom Bus
zu RAM abgetrennt werden.
Dann liegt doch die CPU brach?!
Ergibt sich der Geschwindigkeitsvorteil nur daraus,
dass DMA mehre Bytes auf einmal bewegt?

2) Wird die MMU vom DMA umgangen? Es wird an
keiner Stelle explizit davon gesprochen auf
welcher Abstraktionsebene das geschieht.
Ich würd naiverweise vermuten, dass DMA
mit physikalischen Adressen arbeitet. Korrekt?

Grüsse, Daniel
#701665
Lesenswert?

daniel wrote:
> 1) DMA erlaubt einer Peripheriekomponente direkt
> aus dem RAM zu lesen oder in den Ram zu schreibe.
> Allerdings muss während dessen dir CPU vom Bus
> zu RAM abgetrennt werden.

Ja. Die Trennung ist aber nur für einzelne Takte. Cycle Stealing nennt 
man das.

> Dann liegt doch die CPU brach?!

Nein, die kann derweil weiterarbeiten, Speicherzugriffe laufen sowieso 
über die Cache-Hierarchie, Ram-Zugriffe sind also nicht immer nötig, um 
eine Speichervariable zuzugreifen.

> Ergibt sich der Geschwindigkeitsvorteil nur daraus,
> dass DMA mehre Bytes auf einmal bewegt?

Nein. Der Prozessor muß keine Kontextwechsel in eine ISR machen.

> 2) Wird die MMU vom DMA umgangen?

Weiß ich leider nicht. Sieh dir doch mal die Beschreibung des 
DMA-Controllers an.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren