Configuration requise pour Windows 10 64 bits: mon processeur prend-il en charge CMPXCHG16b, PrefetchW et LAHF / SAHF?

12

J'essaie actuellement de savoir si ce serait une bonne idée de mettre à jour mon bloc-notes légèrement daté (Windows 7, 64 bits) vers Windows 10. Le problème est que Microsoft indique dans ses spécifications Windows 10 que pour utiliser le La version 64 bits de Windows 10, un processeur qui prend en charge CMPXCHG16b, PrefetchW et LAHF / SAHF est nécessaire. Je sais que mon processeur est 64 bits (Intel Core i5-2430M @ 2,40 GHz) mais je ne sais pas comment il prend en charge CMPXCHG16b, PrefetchW et LAHF / SAHF, et je n'ai aucune idée de ce que cela signifie.

J'ai essayé d'utiliser Google et je n'ai obtenu aucun résultat qui avait du sens pour moi, seulement une comparaison de mon i5 et d'un processeur AMD similaire. J'ai également vérifié le site Web ARK d'Intel. Si quelqu'un pouvait m'indiquer où je peux obtenir plus d'informations, je serais vraiment reconnaissant.

roebsi
la source
1
Je pense que tu t'inquiètes trop. Les i5 sont relativement récents et iront bien. Cependant, une règle générale est de ne pas exécuter 64 bits sauf si vous avez> 4 Go de RAM, les frais généraux peuvent ralentir les choses plutôt que les accélérer. Windows 32 bits ne peut accéder directement qu'à un peu moins de 4 Go, donc ce n'est que si vous passez par-dessus que cela vaut le coup d'aller 64 bits
Julian Knight
1
Si vous pouvez mettre à niveau vers Windows 8.1, vous pouvez mettre à niveau vers Windows 10. Vous pouvez également exécuter une vérification de compatibilité pour les deux si vous le souhaitez.
Ramhound
Exécutez un outil sous Windows 7 qui affiche les données CPUID, cela vous indique si le processeur prend en charge les futurs. J'utilise un I5-3xxxM et ici Windows 8.1 fonctionne, il a donc les 3 fonctionnalités. Vous n'êtes qu'à 1 génération derrière, il devrait donc également prendre en charge toutes les fonctionnalités.
magicandre1981
1
@JulianKnight Je conseillerais le 64 bits à toute personne disposant de 2 ou 3 Go et d'une carte graphique dédiée car la mémoire de la carte graphique doit également tenir dans l'espace d'adressage. Si vous avez 4 Go de RAM et une carte graphique de 2 Go, vous venez de gaspiller 2 Go de RAM et votre situation est pire que si vous aviez installé 64 bits.
Mokubai
1
Ne vous en faites pas. À l'exception de certains premiers processeurs Atom ou x86_64, tous les processeurs Intel dans (un peu plus de) une décennie en arrière peuvent exécuter Windows 10 sans problème
phuclv

Réponses:

21

Votre processeur prend en charge ces fonctionnalités. En fait, les mêmes fonctionnalités sont requises pour exécuter Windows 8.1 64 bits. Cette exigence est satisfaite par tous les processeurs modernes et n'est généralement un problème qu'avec certains processeurs Core 2 et antérieurs.

Quelles sont ces instructions?

  • Les premiers processeurs AMD64 manquaient de l' CMPXCHG16Binstruction, qui est une extension de l' CMPXCHG8Binstruction présente sur la plupart des processeurs post-80486. Similaire à CMPXCHG8B, CMPXCHG16Bpermet des opérations atomiques sur les mots octaux. Ceci est utile pour les algorithmes parallèles qui utilisent la comparaison et l'échange sur des données plus grandes que la taille d'un pointeur, courantes dans les algorithmes sans verrouillage et sans attente. Sans cela, CMPXCHG16Bil faut utiliser des solutions de contournement, comme une section critique ou d'autres approches sans verrouillage. Son absence empêche également Windows 64 bits avant Windows 8.1 d'avoir un espace d'adressage en mode utilisateur supérieur à 8 téraoctets. La version 64 bits de Windows 8.1 nécessite les instructions.
  • L' PREFETCHWinstruction est une indication pour le processeur de pré-extraire les données de la mémoire dans le cache en prévision de l'écriture ( Intel Instruction Set Reference , PDF page 888). Cette instruction a été introduite dans 3DNow d'AMD ! jeu d'instructions, qui est obsolète, à l'exception des instructions PREFETCHet PREFETCHW. Tous les processeurs AMD depuis l'Athlon 64 prennent en charge cette instruction. Cependant, cette instruction peut ne pas être prise en charge dans certains anciens processeurs Intel 64 bits antérieurs à Nehalem .

  • Le LAHFet SAHFcharger et stocker le contenu du AHregistre dans le registre des indicateurs, respectivement (Intel Instruction Set Reference, PDF pages 530 et 1025). Certains processeurs Intel plus anciens sans fonctionnalité de virtualisation matérielle (VT-x) ne prennent pas en charge cette instruction lors de l'exécution en mode long 64 bits ; ceux-ci sont principalement limités à certains processeurs bas de gamme antérieurs à Nehalem . Certains très anciens processeurs AMD64 n'ont pas non plus cette fonctionnalité.

  • Les premiers processeurs AMD64 et Intel 64 manquaient d'instructions LAHF et SAHF en mode 64 bits. AMD a introduit ces instructions (également en mode 64 bits) avec leurs processeurs Athlon 64, Opteron et Turion 64 révision D en mars 2005 tandis qu'Intel a présenté les instructions avec le Pentium 4 G1 en décembre 2005. La version 64 bits de Windows 8.1 nécessite cette fonctionnalité.

Qu'est ce que cela signifie pour moi?

  • Tous les processeurs Intel Core i7, i5 ou i3, ainsi que tous les processeurs Pentium ou Celeron basés sur les microarchitectures Clarkdale , Arrandale , Sandy Bridge ou plus récentes, prennent en charge ces fonctionnalités, ainsi que les processeurs Intel Atom et Celeron Silvermont . Pour AMD, tous les processeurs 64 bits, à l'exception des plus anciens, possèdent ces fonctionnalités.

  • Vous n'avez généralement besoin de vous préoccuper de ces instructions que si vous avez un processeur antérieur à ce qui précède. L'application Get Windows 10 vous indiquera si vous pouvez effectuer une mise à niveau vers Windows 10. Si le processeur ne répond pas aux exigences, vous obtiendrez « Le processeur n'est pas pris en charge » .

bwDraco
la source
1
Il convient de souligner cependant, bien que ces fonctionnalités particulières soient les mêmes que celles requises pour exécuter Windows 8.1, toutes les fonctionnalités du processeur requises pour exécuter Windows 10 ne sont pas requises pour exécuter Windows 8.1. En particulier, PAE et NX ne sont pas requis sous 8.1 mais obligatoires pour le 10
qasdfdsaq
1
Le support PREFETCHW est nouveau (pour Intel) dans Broadwell, donc Windows 8.1 ne l'exige certainement pas. Preuve: gcc compile __builtin_prefetch(p,1,2) en PREFETCHT1 avec -march=haswellet en PREFETCHW avec -march=broadwell. En outre, le /proc/cpuinfovidage Linux de ce processeur Haswell n'inclut pas 3dnowprefetch , mais il le fait sur broadwell et skylake. Voir unix.stackexchange.com/questions/43539/… pour la signification des indicateurs.
Peter Cordes
1
Vous pensiez peut-être aux instructions SSE PREFETCHh qui existent au moins depuis le PentiumIII.
Peter Cordes
1
@bwDraco: oui. Son 0F 0D r/m8codage de code machine se décode comme un NOP multi-octets sur les processeurs qui ne prennent pas en charge PREFETCHW, il n'y a donc apparemment aucun problème de compatibilité. (Le comportement des instructions de prélecture n'affecte pas l'exactitude, juste les performances.) Je l'ai essayé sur mon CPU Core2Duo, dans un programme asm qui s'exécute prefetchw [rsp], et l'instruction s'exécute sans faute. Mais je suis sûr à 99% que cela n'a aucun effet.
Peter Cordes
1
Ok, il y a deux sens à "prendre en charge" ici: Win8.1 nécessite apparemment que PREFETCHW ( 0F 0D m8) ne soit pas considéré comme une instruction illégale, ce qui est le cas sur les processeurs Intel après P4 au moins comme discuté ici . Ils l'exécutent en mode no-op (jusqu'à Broadwell), et bien sûr, cela suffit pour Win8.1 (car les préfixes sont de toute façon des indices spéculatifs, qui n'affectent pas l'exactitude). Je n'avais pas réalisé le comportement de NOP, ou qu'il était différent sur les CPU plus anciens.
Peter Cordes
1

Si vous pouvez utiliser la ligne de commande dans Windows, alors:

  • Obtenez SysInternals coreinfo.exe de technet
  • Courir coreinfo > coreinfo.txt
  • Ouvrez le fichier dans un éditeur de texte et effectuez une recherche (insensible à la casse) pour chacune des instructions

PS: sous Linux, vous utiliseriez grep flags /proc/cpuinfo | head -1

robocat
la source
0

Il existe un utilitaire appelé coreinfo , fourni par Microsoft, qui fournit des fonctionnalités comme cat /proc/cpuinfosous Linux.

Vous devez rechercher à travers cela, mais vous pouvez trouver les informations ici,

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 -moyenne que le CPU n'a pas cette fonctionnalité, la *moyenne qu'il a cette fonctionnalité.

Maintenant que je regarde, coreinfo est en fait suggéré par Microsoft pour faire la détermination sur cette page doc,

Coreinfo est un outil que vous pouvez utiliser pour confirmer les capacités de votre processeur.

Le résultat complet de mon processeur, un Intel E7525, ressemble à ceci,

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
la source
-5

"Processeur Intel (R) Core (TM) i7-2600K à 3,40 GHz"

"Instruction PREFETCHWT1 non prise en charge"

De AIDA 64 Extreme. ^^

Ces trois - CMPXCHG16b, PrefetchW et LAHF / SAHF sont requis pour la mise à niveau vers une version 64 bits de Windows 10 à partir d'une installation 64 bits actuelle de Windows 7.

Jota
la source
6
PREFETCHWT1 est une instruction distincte et n'est pas requise, donc ne la confondez pas avec PREFETCHW.
bwDraco