Forum: Mikrocontroller und Digitale Elektronik Begriffserklärung: Read Modify Write, Fetch Decode Execute


von Alexander M. (a_lexander)


Lesenswert?

Hallo Zusammen,

Eine, denke ich, sehr schnell zu beantwortende Frage:

Bedeutet der Read Modify Write-Befehl das Gleiche wie der Fetch Decode 
Execute-Befehl oder gibt es darin irgendwie Unterschiede?

Laut Wikipedia sind die doch sehr ähnlich...
https://de.wikipedia.org/wiki/Befehlszyklus
https://de.wikipedia.org/wiki/RMW-Befehl

Ich hatte nämlich bisher immer den "Fetch Decode Execute"-Zyklus im Kopf 
und eben im Datenblatt des Atmega328 vom "Read Modify Write" gelesen...

Danke ;)

Grüße

von MaWin (Gast)


Lesenswert?

Alexander M. schrieb:
> Bedeutet der Read Modify Write-Befehl das Gleiche wie der Fetch Decode
> Execute-Befehl

Nein.

Jeder Befehl durchläuft FDE aber wenige Befehle führen dabei ein RMW 
aus.

von Theor (Gast)


Lesenswert?

@ Alexander

Das sind zwei veschiedene Dinge.

"Fetch-(Decode-)Execute" beschreibt den Ablauf der Befehlarbeitung der 
Befehel grundsätzlich - und zwar unabhängig von dem konkreten Befehl. 
Das nennt sich "Befehlszyklus".

"Read-Modify-Write" nennt eine ganz bestimmte Klasse von Befehlen, die 
Daten lesen, modifizieren und wieder schreiben. Das bedeutsamste daran 
ist, dass dieser Befehl nicht durch einen Interrupt zu unterbrechen ist.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alexander M. schrieb:
> Ich hatte nämlich bisher immer den "Fetch Decode Execute"-Zyklus im Kopf
> und eben im Datenblatt des Atmega328 vom "Read Modify Write" gelesen...
Das erstere bezeichnet die Programmabarbeitung, das zweitere ist eine 
Form des Speicher-/Register-/Datenzugriffs.
Auch Read-Modify-Write Befehle werden durch die Programmbearbeitung via 
Fetch-Decode-Execute abgeholt und ausgeführt.

: Bearbeitet durch Moderator
von Georg (Gast)


Lesenswert?

Alexander M. schrieb:
> Laut Wikipedia sind die doch sehr ähnlich...

Das ist völlig falsch verstanden. Fetch liest nur einen Befehl und führt 
ihn aus. RMW schreibt Daten in den Speicher. Die Funktionen könnten 
nicht unterschiedlicher sein.

Georg

von Alexander M. (a_lexander)


Lesenswert?

Oh man, darauf hätte ich auch selbst kommen können...

Vielen Dank ;)

von Peter D. (peda)


Lesenswert?

Lustige Effekte gibt es, wenn man bei "Read Modify Write" von anderen 
Registern liest, als man schreibt.
Z.B. wird bei den PICs von den Inputs gelesen und ins Output-Latch 
geschrieben. Neuere PICs erlauben RMW auch vom Latch.
Und bei den AVRs kann man mit RMW unabsichtlich Interruptflags im 
Register löschen.

von (prx) A. K. (prx)


Lesenswert?

Peter D. schrieb:
> Und bei den AVRs kann man mit RMW unabsichtlich Interruptflags im
> Register löschen.

Wobei es generell ein Problem mit RMW-Operationen bei Steuer-Registern 
mit asynchronem und unabhängigem Verhalten der einzelnen Bits gibt, 
nicht nur bei AVR.

AVRs haben aber je nach Modell die Eigenheit, sich genau deshalb bei 
bestimmten Befehlen und bestimmten Registern gezielt nicht wie simples 
RMW zu verhalten, obwohl das sonst eigentlich die Arbeitsweise des 
Befehls ist.

: Bearbeitet durch User
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.