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