RMW-Befehl

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Ein Read-Modify-Write-Befehl (RMW-Befehl, englisch für Lesen-Ändern-Schreiben) bezeichnet in der Informatik einen atomaren Prozessorbefehl, der einen Datenwert aus dem Speicher lädt (read), ihn durch eine Berechnung verändert (modify) und den veränderten Wert an derselben oder einer anderen Stelle im Speicher wieder ablegt (write).

Da der Befehl eine atomare Operation ist, ist sichergestellt, dass die Speicherstelle während der Modifikation nicht von parallel laufenden Prozessen verändert wird. Diese Eigenschaft wird für die Implementierung von Lockingobjekten wie Semaphoren und Mutexen verwendet.

Implementierungen[Bearbeiten]

Je nach Rechnerarchitektur wird der RMW-Befehl als kombinierter Schreib/Lese-Befehl oder als Befehlspaar implementiert. Auf RISC-Architekturen ist diese Operation meist als Load-Link/Store-Conditional Befehlspaar implementiert, da die RISC-Philosophie kombinierte RMW-Befehle nicht erlaubt. Auf CISC-Architekturen wie den Intel x86-Prozessoren ist der kombinierte Compare-and-swap Befehl der vorrangige RMW-Befehl.

Ein Beispiel für einen frühen Prozessor mit RMW-Befehlen ist der 6502 aus den 1970er Jahren. Zwar konnte er noch nicht beliebige Modifikationen durchführen, hatte aber mit den Befehlen INC und DEC immerhin die Möglichkeit, eine Speicherstelle um Eins hoch (INCrement) bzw. runter zu zählen (DECrement).

Siehe auch[Bearbeiten]