web-dev-qa-db-fra.com

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

J'essaie actuellement de savoir s'il serait judicieux ou non de mettre à jour mon ordinateur portable légèrement daté (Windows 7, 64 bits) vers Windows 10. Le problème est que Microsoft indique dans leur Spécifications de Windows 10 selon lesquelles l’utilisation de la version 64 bits de Windows 10 nécessite un processeur compatible CMPXCHG16b, PrefetchW et LAHF/SAHF. Je sais que mon processeur est en 64 bits (Intel Core i5-2430M à 2,40 GHz), mais je ne sais pas s'il est compatible avec CMPXCHG16b, PrefetchW et LAHF/SAHF, et je ne sais pas ce que cela signifie.

J'ai essayé d'utiliser Google et je n'ai obtenu aucun résultat qui me paraisse logique, seulement une comparaison de mon i5 et d'un processeur AMD similaire. J'ai également consulté le site Web ARK d'Intel. Si quelqu'un pouvait m'indiquer où je pouvais obtenir plus d'informations, je vous en serais très reconnaissant.

11
roebsi

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. Tous les processeurs modernes répondent à cette exigence et ne concernent généralement que certains processeurs Core 2 et antérieurs.

Quelles sont ces instructions?

  • Les processeurs AMD64 antérieurs manquaient de l'instruction CMPXCHG16B, qui est une extension de l'instruction CMPXCHG8B présente sur la plupart des processeurs postérieurs à 80486. Semblable à CMPXCHG8B, CMPXCHG16B permet des opérations atomiques sur des 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 CMPXCHG16B, vous devez utiliser des solutions de contournement, telles qu'une section critique ou des approches alternatives sans verrouillage. Son absence empêche également Windows 64 bits antérieur à 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 l’instruction.
  • L’instruction PREFETCHW permet au processeur de pré-extraire des données de la mémoire dans la mémoire cache en prévision de l’écriture ( Référence du jeu d’instructions Intel , PDF page 888). Cette instruction a été introduite dans le jeu d'instructions 3DNow! d'AMD, qui est obsolète à l'exception de PREFETCH et PREFETCHW instructions. Depuis l’Athlon 64, tous les processeurs AMD prennent en charge cette instruction. Toutefois, cette instruction peut ne pas être prise en charge par certains anciens processeurs Intel 64 bits antérieurs à Nehalem .

  • LAHF et SAHF chargent et stockent le contenu du registre AH dans le registre d'indicateurs, respectivement (référence du jeu d'instructions Intel, 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 lorsqu'ils sont exécutés en 64 bits mode long ; ceux-ci sont principalement limités à certains processeurs bas de gamme antérieurs à Nehalem . Certains processeurs AMD64 très anciens sont également dépourvus de 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 ses processeurs Athlon 64, Opteron et Turion 64 révision D en mars 2005, tandis qu'Intel a introduit les instructions avec le processeur pas à pas 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?

20
bwDraco

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

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

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

1
robocat

Il existe un utilitaire appelé coreinfo , fourni par Microsoft, qui fournit une fonctionnalité telle que cat /proc/cpuinfo sous Linux.

Vous devez chercher à 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

Le - signifie que le processeur manque de cette fonctionnalité, le * signifie qu'il dispose de cette fonctionnalité.

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

Coreinfo est un outil que vous pouvez utiliser pour vérifier quelles capacités votre CPU possède. +

Le résultat complet pour 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:
0
Evan Carroll