Sie betrachten frühe AMD-64-Bit-Prozessoren vor Rev. F (dies ist der Zeitpunkt, zu dem sie in den DDR2-Speicher verschoben wurden). Es gibt auch ein paar frühe D-Intel Noconas, die ihn nicht unterstützten, denke ich, aber diese sind seltener.
Wie verbreitet sind alte x64-Prozessoren, denen die Anweisung cmpxchg16b fehlt?
Die cmpxchg16b-Anweisung für atomaren 128-Bit-Speicheraustausch wird von älteren Versionen des x64-Prozessors nicht unterstützt. Es scheint jedoch, dass dies seit einigen Jahren von neueren Versionen des Prozessors unterstützt wird. Wie wahrscheinlich ist es, dass ich auf einem 64-Bit-Computer mit einem alten Prozessor stecke, dem diese Anweisung fehlt?
3 Antworten auf die Frage
Ich habe keine Daten bezüglich der Verbreitung bestimmter Arten von CPUs, daher kann ich Ihre Frage nicht direkt beantworten. Allerdings können Sie herausfinden, ob die CPU unterstützt CMPXCHG16B
durch Prüfen, ob CPUID.01h.ECX.bit13
ist 1
(verfügbar) oder 0
(nicht verfügbar).
Beachten Sie auch, dass die Handbücher von Intels vorsehen, dass Sie diese Anweisung mit dem LOCK
Präfix kombinieren müssen, um diese Anweisung atomar auszuführen .
Die Unterstützung in der CPU reicht möglicherweise nicht aus, da einige Core 2-Benutzer beim Start von Windows 8.1 herausgefunden haben, insbesondere diejenigen mit einem Intel DP35DP-Motherboard. Ich bin mir noch nicht sicher, was in der Hauptplatine den Betrieb von CMPXCHG16B verhindern könnte. Möglicherweise können die Funktionserkennungsbits vom BIOS deaktiviert werden. Um zusammenzufassen, was Yuhong Baos Blog dazu sagt, gab es eine Prozessor-Errata in frühen Core-2-Chips (E0 / R0-Steppings des 45-nm-Core-2), die dazu führte, dass ihre Funktionen über CPUID falsch gemeldet wurden. Dies konnte, soweit ich das beurteilen kann, über ein BIOS / Microcode-Update umgangen werden.
Verwandte Probleme
-
4
Was ist der maximal adressierbare Speicher?
-
1
IDE für die Montage am Pendelantrieb
-
1
Linux und Montage - Blockierung
-
1
Wie kann ich einer Assembly einen starken Namen zuweisen?
-
1
Windows -> Assembly Ordner typische Größe: aka GAC
-
2
8086 Befehlsverschlüsselung verstehen
-
3
Warum können wir den Inhalt einer Binärdatei nach dem Kompilieren nicht verstehen?
-
5
Alte Technologien über Diskette
-
1
Finden Sie heraus, welche Sektoren eine Datei auf einer Festplatte sind?
-
1
Nop-Byte (n) verstehen