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
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.
@ 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.
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
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
Oh man, darauf hätte ich auch selbst kommen können... Vielen Dank ;)
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.