Kann moderne x86-Hardware kein einziges Byte im Speicher speichern?
Stroustrups Aussage in seinem Buch bezieht sich auf das potenzielle Verhalten hypothetischer Hardware ohne ein wohldefiniertes Speichermodell. Er schlägt vor, dass solche Hardware Bytespeicher mit nicht-atomaren Aktualisierungen implementieren könnte, was sich möglicherweise auf benachbarte Bytes auswirkt.
Tatsächliches Verhalten moderner Hardware
Moderne Hardware, einschließlich x86, verhält sich nicht so, wie Stroustrup es beschreibt:
Historischer Kontext
Stroustrups Aussage basierte möglicherweise auf dem Verhalten früher Alpha AXP-Prozessoren, die ursprünglich keine Anweisungen zum Laden/Speichern von Bytes unterstützten . Spätere Versionen von Alpha und alle modernen CPUs unterstützen jedoch sichere und effiziente Bytespeicher.
Hardware-Implementierung
Moderne CPUs verwenden normalerweise Caches, die Speichersegmente speichern. In einem zwischengespeicherten System:
Ausnahmen
Während moderne CPUs atomare Bytespeicher bereitstellen, kann es in bestimmten Situationen Ausnahmen geben:
Fazit
In der Praxis moderne Hardware unterstützt atomare Bytespeicher, wodurch Stroustrups Beschreibung des potenziellen Hardwareverhaltens für tatsächliche Systeme weniger relevant ist. Die von C-Compilern bereitgestellten Speichermodellgarantien basieren auf dem zuverlässigen Verhalten moderner Hardware, um Thread-Sicherheit zu gewährleisten.
Das obige ist der detaillierte Inhalt vonKönnen moderne x86-CPUs wirklich nicht atomar ein einzelnes Byte im Speicher speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!