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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Alexander M. (a_lexander)


Bewertung
-2 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
2 lesenswert
nicht 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. (lkmiller) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Oh man, darauf hätte ich auch selbst kommen können...

Vielen Dank ;)

von Peter D. (peda)


Bewertung
1 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.