Requisiti di Windows 10 a 64 bit: la mia CPU supporta CMPXCHG16b, PrefetchW e LAHF / SAHF?


12

Attualmente sto cercando di scoprire se sarebbe una buona idea aggiornare il mio notebook leggermente datato (Windows 7, 64 bit) a Windows 10. Il problema è che Microsoft afferma nelle specifiche di Windows 10 che utilizzare il È necessaria la versione a 64 bit di Windows 10, un processore che supporta CMPXCHG16b, PrefetchW e LAHF / SAHF. So che il mio processore è a 64 bit (Intel Core i5-2430M a 2,40 GHz) ma non so come scoprire se supporta CMPXCHG16b, PrefetchW e LAHF / SAHF e non ho idea di cosa significhino.

Ho provato a utilizzare Google e non ho ottenuto risultati che avessero senso per me, solo un confronto tra il mio i5 e un processore AMD simile. Ho anche controllato il sito Web di Intel ARK. Se qualcuno potesse indicarmi dove posso ottenere maggiori informazioni, sarei davvero grato.


1
Penso che ti preoccupi troppo. Gli i5 sono relativamente recenti e andranno bene. Tuttavia, una regola empirica generale non è quella di eseguire 64 bit a meno che non si disponga di> 4 GB di RAM, le spese generali possono rendere le cose più lente anziché più veloci. Windows a 32 bit può accedere direttamente solo leggermente a meno di 4 GB, quindi solo se vai oltre vale la pena andare a 64 bit
Julian Knight,

1
Se è possibile eseguire l'aggiornamento a Windows 8.1, è possibile eseguire l'aggiornamento a Windows 10. È inoltre possibile eseguire un controllo di compatibilità per entrambi, se lo si desidera.
Ramhound,

Esegui uno strumento in Windows 7 che visualizza i dati CPUID, questo ti dice se la CPU supporta i futures. Uso un I5-3xxxM e qui funziona Windows 8.1, quindi ha le 3 funzionalità. Hai solo 1 generazione di ritardo, quindi dovrebbe supportare anche tutte le funzionalità.
magicandre1981,

1
@JulianKnight Consiglierei 64 bit a chiunque abbia 2 o 3gb e una scheda grafica dedicata in quanto anche la memoria della scheda grafica deve adattarsi allo spazio degli indirizzi. Se hai 4 GB di RAM e una scheda grafica da 2 GB, hai appena sprecato 2 GB di RAM e stai peggio di se avessi installato 64 bit.
Mokubai

1
Non ti preoccupare. Ad eccezione di alcune prime CPU Atom o x86_64, tutte le CPU Intel in (un po 'più di) un decennio fa possono eseguire Windows 10 senza problemi
phuclv,

Risposte:


21

Il tuo processore supporta queste funzionalità. In effetti, per eseguire Windows 8.1 a 64 bit sono necessarie le stesse funzionalità. Questo requisito è soddisfatto da tutti i processori moderni ed è generalmente solo un problema con alcuni processori Core 2 e precedenti.

Quali sono queste istruzioni?

  • I primi processori AMD64 mancavano CMPXCHG16Bdell'istruzione, che è un'estensione CMPXCHG8Bdell'istruzione presente sulla maggior parte dei processori post-80486. Simile a CMPXCHG8B, CMPXCHG16Bconsente operazioni atomiche su parole ottali. Ciò è utile per gli algoritmi paralleli che utilizzano il confronto e lo scambio su dati di dimensioni maggiori di quelle di un puntatore, comuni negli algoritmi senza blocco e senza attesa. Senza CMPXCHG16Buno è necessario utilizzare soluzioni alternative, come una sezione critica o approcci alternativi senza blocco. La sua assenza impedisce a Windows a 64 bit prima di Windows 8.1 di avere uno spazio degli indirizzi in modalità utente superiore a 8 terabyte. La versione a 64 bit di Windows 8.1 richiede l'istruzione.
  • Le PREFETCHWistruzioni suggeriscono al processore di precaricare i dati dalla memoria nella cache in previsione della scrittura ( Intel Instruction Set Reference , PDF page 888). Questa istruzione è stata introdotta in 3DNow di AMD ! set di istruzioni, che è obsoleto ad eccezione delle istruzioni PREFETCHe PREFETCHW. Tutti i processori AMD a partire dall'Athlon 64 supportano questa istruzione. Tuttavia, questa istruzione potrebbe non essere supportata in alcuni vecchi processori Intel a 64 bit precedenti a Nehalem .

  • L' LAHFe SAHFcarico e memorizzare il contenuto del AHregistro nelle bandiere registro, rispettivamente (Intel del set di istruzioni, pagine PDF 530 e 1025). Alcuni vecchi processori Intel senza funzionalità di virtualizzazione hardware (VT-x) non supportano questa istruzione quando vengono eseguiti in modalità lunga a 64 bit ; questi sono per lo più limitati a determinati processori di fascia bassa precedenti a Nehalem . Anche alcuni vecchi processori AMD64 non dispongono di questa funzione.

  • Le prime CPU AMD64 e Intel 64 mancavano delle istruzioni LAHF e SAHF in modalità 64 bit. AMD ha introdotto queste istruzioni (anche in modalità 64 bit) con i suoi processori di revisione D Athlon 64, Opteron e Turion 64 nel marzo 2005, mentre Intel ha introdotto le istruzioni con Pentium 4 G1 stepping nel dicembre 2005. La versione a 64 bit di Windows 8.1 richiede questa funzione.

Cosa significa questo per me?

  • Tutti i processori Intel Core i7, i5 o i3, nonché tutti i processori Pentium o Celeron basati su Clarkdale , Arrandale , Sandy Bridge o le più recenti microarchitettura, supportano queste funzionalità, nonché i processori Intel Atom e Celeron Silvermont . Per AMD, tutti tranne i più vecchi processori a 64 bit hanno queste caratteristiche.

  • In genere è necessario preoccuparsi di queste istruzioni solo se si dispone di un processore che precede quanto sopra. L'app Ottieni Windows 10 ti dirà se puoi eseguire l'aggiornamento a Windows 10. Se il processore non soddisfa i requisiti, otterrai " La CPU non è supportata " .


1
Tuttavia, è opportuno sottolineare che, sebbene queste particolari funzioni siano le stesse richieste per eseguire Windows 8.1, non tutte le funzionalità della CPU necessarie per eseguire Windows 10 sono necessarie per eseguire Windows 8.1. In particolare, PAE e NX non sono richiesti in 8.1 ma obbligatori per 10
qasdfdsaq

1
Il supporto PREFETCHW è nuovo (per Intel) in Broadwell, quindi Windows 8.1 certamente non lo richiede. Prova: gcc si compila __builtin_prefetch(p,1,2) in PREFETCHT1 con -march=haswell, e PREFETCHW con -march=broadwell. Inoltre, il /proc/cpuinfodump Linux da questa CPU Haswell non include 3dnowprefetch , ma lo fa su broadwell e skylake. Vedere unix.stackexchange.com/questions/43539/… per il significato delle bandiere.
Peter Cordes,

1
Forse stavi pensando alle istruzioni SSE PREFETCH che esistono almeno dal PentiumIII.
Peter Cordes,

1
@bwDraco: si. La sua 0F 0D r/m8codifica con codice macchina decodifica come NOP multi-byte su CPU che non supportano PREFETCHW, quindi apparentemente non ci sono problemi di compatibilità. (Il comportamento delle istruzioni di prefetch non influisce sulla correttezza, ma solo sulle prestazioni.) L'ho provato sulla mia CPU Core2Duo, in un programma asm che viene eseguito prefetchw [rsp]e l'istruzione viene eseguita senza errori. Ma sono sicuro al 99% che non ha alcun effetto.
Peter Cordes,

1
Ok, ci sono due significati per "supportare" qui: Win8.1 apparentemente richiede che PREFETCHW ( 0F 0D m8) non si verifichi come un'istruzione illegale, come nel caso delle CPU Intel dopo P4 almeno come discusso qui . Lo eseguono come no-op (fino a Broadwell), e ovviamente questo è sufficiente per Win8.1 (perché i prefetch sono comunque suggerimenti speculativi, che non influiscono sulla correttezza). Non mi ero reso conto del comportamento NOP, o che era diverso su CPU più vecchie.
Peter Cordes,

1

Se puoi utilizzare la riga di comando in Windows, allora:

  • Ottieni SysInternals coreinfo.exe da technet
  • Correre coreinfo > coreinfo.txt
  • Apri il file in un editor di testo ed esegui una ricerca (senza distinzione tra maiuscole e minuscole) per ciascuna delle istruzioni

PS: In Linux useresti grep flags /proc/cpuinfo | head -1


0

Esiste un'utilità chiamata coreinfo , fornita da Microsoft, che fornisce funzionalità come cat /proc/cpuinfosu Linux.

Devi cercare in questo, ma puoi trovare le informazioni qui,

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

La -media che la CPU manca tale funzione, il *significato ha quella caratteristica.

Ora che guardo, coreinfo è in realtà suggerito da Microsoft di prendere la decisione su quella pagina del documento,

Coreinfo è uno strumento che puoi utilizzare per confermare quale di queste funzionalità ha la tua CPU. +

Il risultato completo per il mio processore, un Intel E7525, è simile al seguente,

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:

-5

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

"Istruzione PREFETCHWT1 non supportata"

Da AIDA 64 Extreme. ^^

Questi tre - CMPXCHG16b, PrefetchW e LAHF / SAHF sono necessari per l'aggiornamento a una versione a 64 bit di Windows 10 da un'installazione corrente a 64 bit di Windows 7.


6
PREFETCHWT1 è un'istruzione separata e non è necessaria, quindi non confonderla con PREFETCHW.
bwDraco,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.