Forum: Mikrocontroller und Digitale Elektronik DMA Prozessor Wirkungsweise


von noob (Gast)


Lesenswert?

Hallo, ich habe ein kleines Problem mit dem Verständnis des DMA. Wird 
dieser genutzt, etwa für einen D/A, ist dann der Prozessor während 
dieser Zeit gar nicht nutzbar oder kann er andere Aufgaben erledigen, 
wie etwa AD Wandlungen oder Berechnungen?

von Albert .. (albert-k)


Lesenswert?

Die DMA entlastet den Prozessor indem sie den Datentransfer zwischen 
Peripherie - Peripherie/Speicher übernimmt. Ohne das der Prozessor etwas 
damit zu tun hat. Er kann also andere Aufgaben übernehmen.
Man muss die DMA Einheit natürlich vorher konfigurieren (Von wo nah wo 
sollen Daten verschoben werden, und vor allen Dingen wie viele?).

von noob (Gast)


Lesenswert?

Also könnte ich permanent Analogdaten einlesen und gleichzeitig wieder 
über DMA ausgeben und nebenbei noch bisschen was berechnen bzw. über UBS 
versenden, ohne dass sich diese Funktionen irgenwie blockieren oder das 
"Wasser" abgraben?

von Tilo (Gast)


Lesenswert?

Jein, das hängt von der Architektur ab.
Es kann sein, dass der DMA den Zugriff auf den Speicher blockiert und 
der Prozessor deshalb nicht auf den Speicher zugreifen kann.

von Karl H. (kbuchegg)


Lesenswert?

Das wirst du auch so können.

DMA spielt seine Vorteile dann aus, wenn es gilt große Datenmenge von A 
nach B zu schaufeln. Wegen 5 Bytes lohnt sich DMA kaum.

von Frosch (Gast)


Lesenswert?

Nicht wirklich, da DMA und CPU NICHT gleichzeitig auf Daten-, Adress- 
und Steuerbusse zugreifen können. Die DMA "stiehlt" somit der CPU 
Rechenzeit bzw. es wird "Wasser abgegraben". Du kannst allerdings von 
der DMA Daten "schieben" und "nebenbei" von der CPU was anderes 
berechnen lassen. Das berechnen geht dann allerdings langsamer.

von Falk B. (falk)


Lesenswert?

Siehe DMA

von Falk B. (falk)


Lesenswert?

@  Frosch (Gast)

>Nicht wirklich, da DMA und CPU NICHT gleichzeitig auf Daten-, Adress-
>und Steuerbusse zugreifen können.

Kann man so allgemein gar nicht sagen. Das kommt sehr auf den jeweiligen 
Prozessor und dessen Umfeld an.

>berechnen lassen. Das berechnen geht dann allerdings langsamer.

Stimmt auch nicht, siehe oben. Und es gibt, vor allem heute, auch noch 
den Cache, dort kann der Prozessor (fast) ungestört arbeiten.

MFG
Falk

von noob (Gast)


Lesenswert?

Ok danke für den Link und die Antworten. Scheinbar ist das immer etwas 
unterschiedlich. Wo steht sowas für gewöhnlich im Datenblatt bzw. 
vielleicht kennt jeman die Seit beim SMT32F105?

von noob (Gast)


Lesenswert?


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.