Begriffserklärung: Read Modify Write, Fetch Decode Execute

OP #6481812
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
Gast #6481838
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.
Moderator (Firma: Titel) Persönliche Seite #6481841
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.
#6482254
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.
#6482324
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren