Windows 10 64-Bit-Anforderungen: Unterstützt meine CPU CMPXCHG16b, PrefetchW und LAHF / SAHF?

12

Ich versuche derzeit herauszufinden, ob es eine gute Idee wäre, mein leicht veraltetes Notebook (Windows 7, 64-Bit) auf Windows 10 zu aktualisieren. Das Problem ist, dass Microsoft in seinen Windows 10-Spezifikationen angibt, dass das verwendet werden soll Es wird eine 64-Bit-Version von Windows 10 benötigt, ein Prozessor, der CMPXCHG16b, PrefetchW und LAHF / SAHF unterstützt. Ich weiß, dass mein Prozessor 64-Bit ist (Intel Core i5-2430M bei 2,40 GHz), aber ich weiß nicht, wie ich herausfinden kann, ob er CMPXCHG16b, PrefetchW und LAHF / SAHF unterstützt, und ich habe keine Ahnung, was diese bedeuten.

Ich habe versucht, Google zu verwenden, und habe keine für mich sinnvollen Ergebnisse erhalten, nur einen Vergleich meines i5 und eines ähnlichen AMD-Prozessors. Ich habe auch Intels ARK-Website überprüft. Wenn mich jemand darauf hinweisen könnte, wo ich mehr Informationen bekommen kann, wäre ich wirklich dankbar.

Roebsi
quelle
1
Ich denke, du machst dir zu viele Sorgen. Die i5 sind relativ neu und werden in Ordnung sein. Eine allgemeine Faustregel lautet jedoch, 64-Bit nicht auszuführen, es sei denn, Sie haben> 4 GB RAM. Der Overhead kann dazu führen, dass die Dinge langsamer als schneller laufen. Windows 32bit kann nur direkt auf etwas weniger als 4 GB zugreifen. Nur wenn Sie darüber nachdenken, lohnt es sich, 64 Bit zu verwenden
Julian Knight
1
Wenn Sie ein Upgrade auf Windows 8.1 durchführen können, können Sie ein Upgrade auf Windows 10 durchführen. Wenn Sie möchten, können Sie auch eine Kompatibilitätsprüfung für beide durchführen.
Ramhound
Führen Sie unter Windows 7 ein Tool aus, das CPUID-Daten anzeigt. Hier erfahren Sie, ob die CPU die Zukunft unterstützt. Ich benutze ein I5-3xxxM und hier funktioniert Windows 8.1, also hat es die 3 Funktionen. Sie sind nur eine Generation zurück, daher sollte es auch alle Funktionen unterstützen.
magicandre1981
1
@JulianKnight Ich würde jedem mit 2 oder 3 GB und einer dedizierten Grafikkarte 64-Bit empfehlen, da der Grafikkartenspeicher auch in den Adressraum passen muss. Wenn Sie 4 GB RAM und eine 2 GB Grafikkarte haben, haben Sie gerade 2 GB RAM verschwendet und sind schlechter dran als wenn Sie 64 Bit installiert hätten.
Mokubai
1
Mach dir darüber keine Sorgen. Mit Ausnahme einiger früher Atom- oder x86_64-CPUs können alle Intel-CPUs in (etwas mehr als) einem Jahrzehnt zurück Windows 10 problemlos
ausführen

Antworten:

21

Ihr Prozessor unterstützt diese Funktionen. Tatsächlich sind dieselben Funktionen erforderlich, um 64-Bit-Windows 8.1 auszuführen. Diese Anforderung wird von allen modernen Prozessoren erfüllt und ist im Allgemeinen nur bei bestimmten Core 2-Prozessoren und früheren Prozessoren ein Problem.

Was sind diese Anweisungen?

  • Bei frühen AMD64-Prozessoren fehlte die CMPXCHG16BAnweisung, was eine Erweiterung der CMPXCHG8BAnweisung darstellt, die auf den meisten Post-80486-Prozessoren vorhanden ist. Ähnlich CMPXCHG8B, CMPXCHG16Bermöglicht atomare Operationen auf Oktal Wörtern. Dies ist nützlich für parallele Algorithmen, bei denen Daten verglichen und ausgetauscht werden, die größer als ein Zeiger sind. Dies ist bei Algorithmen ohne Sperren und ohne Wartezeiten üblich. Ohne CMPXCHG16Bmuss man Workarounds wie einen kritischen Abschnitt oder alternative sperrfreie Ansätze verwenden. Das Fehlen verhindert auch, dass 64-Bit-Windows vor Windows 8.1 einen Adressraum im Benutzermodus von mehr als 8 Terabyte hat. Die 64-Bit-Version von Windows 8.1 erfordert die Anweisung.
  • Die PREFETCHWAnweisung ist ein Hinweis für den Prozessor, Daten aus dem Speicher in Erwartung des Schreibens in den Cache vorab abzurufen ( Intel Instruction Set Reference , PDF Seite 888). Diese Anweisung wurde in AMDs 3DNow! Befehlssatz, der bis auf die Anweisungen PREFETCHund veraltet ist PREFETCHW. Alle AMD-Prozessoren seit dem Athlon 64 unterstützen diese Anweisung. Diese Anweisung wird jedoch möglicherweise in einigen älteren 64-Bit-Intel-Prozessoren vor Nehalem nicht unterstützt .

  • Das LAHFund SAHFLaden und Speichern des Inhalts des AHRegisters in das Flags-Register (Intel Instruction Set Reference, PDF-Seiten 530 und 1025). Einige ältere Intel-Prozessoren ohne Hardware-Virtualisierungsfunktion (VT-x) unterstützen diese Anweisung nicht, wenn sie im 64-Bit- Modus ausgeführt werden . Diese sind meist auf bestimmte Low-End-Prozessoren vor Nehalem beschränkt . Bei einigen sehr alten AMD64-Prozessoren fehlt diese Funktion ebenfalls.

  • Frühe AMD64- und Intel 64-CPUs hatten im 64-Bit-Modus keine LAHF- und SAHF-Anweisungen. AMD führte diese Anweisungen (ebenfalls im 64-Bit-Modus) im März 2005 mit seinen Prozessoren Athlon 64, Opteron und Turion 64 Revision D ein, während Intel die Anweisungen mit dem Pentium 4 G1 im Dezember 2005 einführte. Die 64-Bit-Version von Windows 8.1 erfordert diese Funktion.

Was bedeutet das für mich?

  • Alle Intel Core i7-, i5- oder i3-Prozessoren sowie alle Pentium- oder Celeron-Prozessoren, die auf Clarkdale- , Arrandale- , Sandy Bridge- oder neueren Mikroarchitekturen basieren , unterstützen diese Funktionen sowie Intel Atom- und Celeron Silvermont- Prozessoren. Für AMD verfügen alle außer den ältesten 64-Bit-Prozessoren über diese Funktionen.

  • Sie müssen sich im Allgemeinen nur um diese Anweisungen kümmern, wenn Sie einen Prozessor haben, der älter ist als die oben genannten. Die Get Windows 10-App zeigt an, ob Sie ein Upgrade auf Windows 10 durchführen können. Wenn der Prozessor die Anforderungen nicht erfüllt, wird " Die CPU wird nicht unterstützt " angezeigt.

bwDraco
quelle
1
Sollte jedoch darauf hinweisen, dass diese speziellen Funktionen dieselben sind, die zum Ausführen von Windows 8.1 erforderlich sind, sind jedoch nicht alle zum Ausführen von Windows 10 erforderlichen CPU-Funktionen zum Ausführen von Windows 8.1 erforderlich. Insbesondere sind PAE und NX unter 8.1 nicht erforderlich, aber für 10
qasdfdsaq
1
Die PREFETCHW-Unterstützung ist neu (für Intel) in Broadwell, sodass Windows 8.1 dies sicherlich nicht erfordert. Beweis: gcc kompiliert __builtin_prefetch(p,1,2) mit PREFETCHT1 mit -march=haswellund mit PREFETCHW mit -march=broadwell. Auch das Linux - /proc/cpuinfoDump ist von dieser Haswell CPU nicht enthält 3DNowPrefetch , aber es funktioniert auf Broadwell und Skylake. Die Bedeutung von Flags finden Sie unter unix.stackexchange.com/questions/43539/… .
Peter Cordes
1
Vielleicht haben Sie an die SSE PREFETCHh- Anweisungen gedacht , die es zumindest seit PentiumIII gibt.
Peter Cordes
1
@bwDraco: ja. Die 0F 0D r/m8Maschinencode-Codierung wird auf CPUs, die PREFETCHW nicht unterstützen, als Multi-Byte-NOP dekodiert, sodass anscheinend kein Kompatibilitätsproblem vorliegt. (Das Verhalten von Prefetch-Anweisungen wirkt sich nicht auf die Korrektheit aus, sondern nur auf die Leistung.) Ich habe es auf meiner Core2Duo-CPU in einem asm-Programm versucht, das ausgeführt wird prefetchw [rsp], und die Anweisung wird fehlerfrei ausgeführt. Aber ich bin zu 99% sicher, dass es keine Wirkung hat.
Peter Cordes
1
Ok, hier gibt es zwei Bedeutungen, die "unterstützt" werden müssen: Win8.1 erfordert anscheinend, dass PREFETCHW ( 0F 0D m8) nicht als illegale Anweisung fehlerhaft ist, was bei Intel-CPUs nach P4 zumindest wie hier beschrieben der Fall ist . Sie führen es als No-Op aus (bis Broadwell), und das ist natürlich für Win8.1 ausreichend (da Prefetches ohnehin spekulative Hinweise sind, die die Korrektheit nicht beeinträchtigen). Ich hatte das NOP-Verhalten nicht bemerkt oder festgestellt, dass es bei älteren CPUs anders war.
Peter Cordes
1

Wenn Sie die Befehlszeile in Windows verwenden können, dann:

  • Holen Sie sich SysInternals coreinfo.exe von technet
  • Lauf coreinfo > coreinfo.txt
  • Öffnen Sie die Datei in einem Texteditor und suchen Sie für jede der Anweisungen (ohne Berücksichtigung der Groß- und Kleinschreibung)

PS: Unter Linux würden Sie verwenden grep flags /proc/cpuinfo | head -1

Robocat
quelle
0

Es gibt ein von Microsoft bereitgestelltes Dienstprogramm namens coreinfo , das Funktionen wie cat /proc/cpuinfounter Linux bietet .

Sie müssen dies durchsuchen, aber Sie können die Informationen hier finden,

LAHF-SAHF       -       Supports LAHF/SAHF instructions in 64-bit mode
NX              -       Supports no-execute page protection
CX16            *       Supports CMPXCHG16B instruction
X64             *       Supports 64-bit mode
PREFETCHW       -       Supports PREFETCHW instruction

Der -Mittelwert, dass der CPU diese Funktion fehlt, der *Mittelwert, dass sie diese Funktion hat.

Nun, da ich nachschaue, wird coreinfo tatsächlich von Microsoft vorgeschlagen, die Entscheidung auf dieser Dokumentseite zu treffen.

Coreinfo ist ein Tool, mit dem Sie überprüfen können, über welche dieser Funktionen Ihre CPU verfügt. +

Das vollständige Ergebnis für meinen Prozessor, einen Intel E7525, sieht folgendermaßen aus:

Coreinfo v3.31 - Dump information on system CPU and memory topology
Copyright (C) 2008-2014 Mark Russinovich
Sysinternals - www.sysinternals.com

Intel(R) Xeon(TM) CPU 3.40GHz
x86 Family 15 Model 4 Stepping 3, GenuineIntel
Microcode signature: 00000005
HTT             *       Hyperthreading enabled
HYPERVISOR      -       Hypervisor is present
VMX             -       Supports Intel hardware-assisted virtualization
SVM             -       Supports AMD hardware-assisted virtualization
X64             *       Supports 64-bit mode

SMX             -       Supports Intel trusted execution
SKINIT          -       Supports AMD SKINIT

NX              -       Supports no-execute page protection
SMEP            -       Supports Supervisor Mode Execution Prevention
SMAP            -       Supports Supervisor Mode Access Prevention
PAGE1GB         -       Supports 1 GB large pages
PAE             *       Supports > 32-bit physical addresses
PAT             *       Supports Page Attribute Table
PSE             *       Supports 4 MB pages
PSE36           *       Supports > 32-bit address 4 MB pages
PGE             *       Supports global bit in page tables
SS              *       Supports bus snooping for cache operations
VME             *       Supports Virtual-8086 mode
RDWRFSGSBASE    -       Supports direct GS/FS base access

FPU             *       Implements i387 floating point instructions
MMX             *       Supports MMX instruction set
MMXEXT          -       Implements AMD MMX extensions
3DNOW           -       Supports 3DNow! instructions
3DNOWEXT        -       Supports 3DNow! extension instructions
SSE             *       Supports Streaming SIMD Extensions
SSE2            *       Supports Streaming SIMD Extensions 2
SSE3            *       Supports Streaming SIMD Extensions 3
SSSE3           -       Supports Supplemental SIMD Extensions 3
SSE4a           -       Supports Streaming SIMDR Extensions 4a
SSE4.1          -       Supports Streaming SIMD Extensions 4.1
SSE4.2          -       Supports Streaming SIMD Extensions 4.2

AES             -       Supports AES extensions
AVX             -       Supports AVX intruction extensions
FMA             -       Supports FMA extensions using YMM state
MSR             *       Implements RDMSR/WRMSR instructions
MTRR            *       Supports Memory Type Range Registers
XSAVE           -       Supports XSAVE/XRSTOR instructions
OSXSAVE         -       Supports XSETBV/XGETBV instructions
RDRAND          -       Supports RDRAND instruction
RDSEED          -       Supports RDSEED instruction

CMOV            *       Supports CMOVcc instruction
CLFSH           *       Supports CLFLUSH instruction
CX8             *       Supports compare and exchange 8-byte instructions
CX16            *       Supports CMPXCHG16B instruction
BMI1            -       Supports bit manipulation extensions 1
BMI2            -       Supports bit manipulation extensions 2
ADX             -       Supports ADCX/ADOX instructions
DCA             -       Supports prefetch from memory-mapped device
F16C            -       Supports half-precision instruction
FXSR            *       Supports FXSAVE/FXSTOR instructions
FFXSR           -       Supports optimized FXSAVE/FSRSTOR instruction
MONITOR         *       Supports MONITOR and MWAIT instructions
MOVBE           -       Supports MOVBE instruction
ERMSB           -       Supports Enhanced REP MOVSB/STOSB
PCLMULDQ        -       Supports PCLMULDQ instruction
POPCNT          -       Supports POPCNT instruction
LZCNT           -       Supports LZCNT instruction
SEP             *       Supports fast system call instructions
LAHF-SAHF       -       Supports LAHF/SAHF instructions in 64-bit mode
HLE             -       Supports Hardware Lock Elision instructions
RTM             -       Supports Restricted Transactional Memory instructions

DE              *       Supports I/O breakpoints including CR4.DE
DTES64          *       Can write history of 64-bit branch addresses
DS              *       Implements memory-resident debug buffer
DS-CPL          *       Supports Debug Store feature with CPL
PCID            -       Supports PCIDs and settable CR4.PCIDE
INVPCID         -       Supports INVPCID instruction
PDCM            -       Supports Performance Capabilities MSR
RDTSCP          -       Supports RDTSCP instruction
TSC             *       Supports RDTSC instruction
TSC-DEADLINE    -       Local APIC supports one-shot deadline timer
TSC-INVARIANT   -       TSC runs at constant rate
xTPR            *       Supports disabling task priority messages

EIST            *       Supports Enhanced Intel Speedstep
ACPI            *       Implements MSR for power management
TM              *       Implements thermal monitor circuitry
TM2             -       Implements Thermal Monitor 2 control
APIC            *       Implements software-accessible local APIC
x2APIC          -       Supports x2APIC

CNXT-ID         *       L1 data cache mode adaptive or BIOS

MCE             *       Supports Machine Check, INT18 and CR4.MCE
MCA             *       Implements Machine Check Architecture
PBE             *       Supports use of FERR#/PBE# pin

PSN             -       Implements 96-bit processor serial number

PREFETCHW       -       Supports PREFETCHW instruction

Maximum implemented CPUID leaves: 00000005 (Basic), 80000008 (Extended).

Logical to Physical Processor Map:
*-  Physical Processor 0
-*  Physical Processor 1

Logical Processor to Socket Map:

Logical Processor to NUMA Node Map:
**  NUMA Node 0

Logical Processor to Cache Map:
Evan Carroll
quelle
-5

"Intel (R) Core (TM) i7-2600K-CPU bei 3,40 GHz"

"PREFETCHWT1-Anweisung wird nicht unterstützt"

Von AIDA 64 Extreme. ^^

Diese drei - CMPXCHG16b, PrefetchW und LAHF / SAHF - sind für das Upgrade von einer aktuellen 64-Bit-Installation von Windows 7 auf eine 64-Bit-Version von Windows 10 erforderlich.

Jota
quelle
6
PREFETCHWT1 ist eine separate Anweisung und wird nicht benötigt. Verwechseln Sie sie daher nicht mit PREFETCHW.
bwDraco