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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.