Forum: PC-Programmierung DMA und MMU (zusammenspiel)


von daniel (Gast)


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

von sechsnullfuenf (Gast)


Lesenswert?

1) jein, denn der DMA arbeitet dann wenn die CPU was internes zu machen 
hat. Falls der DMA ein timing zu erfuellen hat, kann der DMA den bus mit 
einer prioritaetssteuerung den Bus von der CPU wegnehmen.
2) Der DMA arbeitet mit physikalischen Adressen, denn etwas anderes kann 
am Bus gar nicht anliegen.

Die Arbitrierung zwischen CPU und DMA Controller macht der 
Buscontroller, eine Einheit, die beide haben. Bei gewissen Controllern 
macht das der Busarbiter. Dort koennen die verschiedenen Devices, die 
Bus moechten mit einer gewissen Prioritaet den Bus verlangen. Die 
einfachste Moeglichkeit ist ein einfaches Handshake.

von Uhu U. (uhu)


Lesenswert?

Doppelposting: Beitrag "Zusammenspiel von DMA und MMU"

Das ist hier nicht gern gesehen!

von daniel (Gast)


Lesenswert?

@sechsnullfuenf
danke
@Uhu Uhuhu
hab nach möglichkeit gesucht ein post zu verschieben und nichts 
gefunden.
mir wurde später klar, dass "pc programmierung" sich mehr um das
softe dreht.

gruss, daniel

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.