Requisitos de Windows 10 de 64 bits: ¿mi CPU admite CMPXCHG16b, PrefetchW y LAHF / SAHF?

12

Actualmente estoy tratando de averiguar si sería una buena idea actualizar mi portátil ligeramente anticuado (Windows 7, 64 bits) a Windows 10. El problema es que Microsoft indica en sus especificaciones de Windows 10 que usar el Se necesita una versión de 64 bits de Windows 10, un procesador que admita CMPXCHG16b, PrefetchW y LAHF / SAHF. Sé que mi procesador es de 64 bits (Intel Core i5-2430M @ 2.40 GHz) pero no sé cómo saber si es compatible con CMPXCHG16b, PrefetchW y LAHF / SAHF, y no tengo idea de lo que significan.

Intenté usar Google y no obtuve ningún resultado que tuviera sentido para mí, solo una comparación de mi i5 y un procesador AMD similar. También revisé el sitio web ARK de Intel. Si alguien pudiera señalarme dónde puedo obtener más información, estaría realmente agradecido.

roebsi
fuente
1
Creo que te estás preocupando demasiado. Los i5 son relativamente recientes y estarán bien. Sin embargo, una regla general es no ejecutar 64 bits a menos que tenga> 4 GB de RAM, los gastos generales pueden hacer que las cosas funcionen más lento que rápido. Windows 32 bits solo puede acceder directamente a un poco menos de 4 GB, por lo que solo si pasa, vale la pena ir a 64 bits
Julian Knight
1
Si puede actualizar a Windows 8.1, puede actualizar a Windows 10. También puede ejecutar una verificación de compatibilidad para ambos si lo desea.
Ramhound
Ejecute una herramienta en Windows 7 que muestre datos de CPUID, esto le indica si la CPU admite futuros. Yo uso un I5-3xxxM y aquí Windows 8.1 funciona, por lo que tiene las 3 características. Solo está 1 generación atrás, por lo que también debería admitir todas las funciones.
magicandre1981
1
@JulianKnight Aconsejaría 64 bits a cualquiera con 2 o 3 gb y una tarjeta gráfica dedicada, ya que la memoria de la tarjeta gráfica también debe caber en el espacio de direcciones. Si tiene 4 gb de ram y una tarjeta gráfica de 2 gb, entonces acaba de desperdiciar 2 gb de ram y está peor que si hubiera instalado 64 bits.
Mokubai
1
No te preocupes por eso. A excepción de algunas CPUs Atom o x86_64 primeras, todas las CPUs de Intel en (un poco más de) una vuelta década puede ejecutar Windows 10 sin problema
phuclv

Respuestas:

21

Su procesador admite estas características. De hecho, se requieren las mismas características para ejecutar Windows 8.1 de 64 bits. Todos los procesadores modernos cumplen con este requisito y generalmente solo es un problema con ciertos procesadores Core 2 y anteriores.

¿Cuáles son estas instrucciones?

  • Los primeros procesadores AMD64 carecían de la CMPXCHG16Binstrucción, que es una extensión de la CMPXCHG8Binstrucción presente en la mayoría de los procesadores posteriores a 80486. Similar a CMPXCHG8B, CMPXCHG16Bpermite operaciones atómicas en palabras octales. Esto es útil para algoritmos paralelos que usan comparar e intercambiar datos más grandes que el tamaño de un puntero, común en algoritmos sin bloqueo y sin esperar. Sin CMPXCHG16Buno debe usar soluciones alternativas, como una sección crítica o enfoques alternativos sin bloqueo. Su ausencia también evita que Windows de 64 bits anterior a Windows 8.1 tenga un espacio de direcciones en modo de usuario mayor de 8 terabytes. La versión de 64 bits de Windows 8.1 requiere la instrucción.
  • La PREFETCHWinstrucción es una pista para que el procesador precargue los datos de la memoria en la memoria caché con anticipación para la escritura ( Referencia del conjunto de instrucciones de Intel , PDF página 888). Esta instrucción fue introducida en 3DNow de AMD ! conjunto de instrucciones, que está en desuso excepto las instrucciones PREFETCHy PREFETCHW. Todos los procesadores AMD desde Athlon 64 admiten esta instrucción. Sin embargo, es posible que esta instrucción no sea compatible con algunos procesadores Intel de 64 bits anteriores a Nehalem .

  • El LAHFy SAHFcarga y almacenar el contenido del AHregistro en el registro de banderas, respectivamente (Instrucción Intel Conjunto de referencia, páginas PDF 530 y 1025). Algunos procesadores Intel más antiguos sin funcionalidad de virtualización de hardware (VT-x) no admiten esta instrucción cuando se ejecutan en modo largo de 64 bits ; estos se limitan principalmente a ciertos procesadores de gama baja anteriores a Nehalem . Algunos procesadores AMD64 muy antiguos también carecen de esta característica.

  • Las primeras CPU AMD64 e Intel 64 carecían de instrucciones LAHF y SAHF en el modo de 64 bits. AMD presentó estas instrucciones (también en modo de 64 bits) con sus procesadores Athlon 64, Opteron y Turion 64 revisión D en marzo de 2005, mientras que Intel introdujo las instrucciones con el Pentium 4 G1 en diciembre de 2005. La versión de 64 bits de Windows 8.1 requiere esta característica.

Que significa esto para mi?

  • Todos los procesadores Intel Core i7, i5 o i3, así como todos los procesadores Pentium o Celeron basados ​​en Clarkdale , Arrandale , Sandy Bridge o microarquitecturas más recientes, admiten estas características, así como los procesadores Intel Atom y Celeron Silvermont . Para AMD, todos menos los procesadores de 64 bits más antiguos tienen estas características.

  • En general, solo debe preocuparse por estas instrucciones si tiene un procesador anterior a lo anterior. La aplicación Get Windows 10 le dirá si puede actualizar a Windows 10. Si el procesador no cumple con los requisitos, obtendrá " La CPU no es compatible " .

bwDraco
fuente
1
Sin embargo, debe señalarse, si bien estas características particulares son las mismas que se requieren para ejecutar Windows 8.1, no todas las características de CPU requeridas para ejecutar Windows 10 son necesarias para ejecutar Windows 8.1. En particular, PAE y NX no son obligatorios en 8.1, pero son obligatorios para 10
qasdfdsaq
1
El soporte PREFETCHW es nuevo (para Intel) en Broadwell, por lo que Windows 8.1 ciertamente no lo requiere. Evidencia: gcc compila __builtin_prefetch(p,1,2) a PREFETCHT1 con -march=haswell, y a PREFETCHW con -march=broadwell. Además, el /proc/cpuinfovolcado de Linux de esta CPU Haswell no incluye 3dnowprefetch , pero sí en broadwell y skylake. Consulte unix.stackexchange.com/questions/43539/… para conocer el significado de las banderas.
Peter Cordes
1
Tal vez estabas pensando en las instrucciones SSE PREFETCHh que han existido desde PentiumIII al menos.
Peter Cordes el
1
@bwDraco: sí. Su 0F 0D r/m8codificación de código de máquina se descodifica como un NOP de varios bytes en CPU que no admiten PREFETCHW, por lo que aparentemente no hay problemas de compatibilidad. (El comportamiento de las instrucciones de captación previa no afecta la corrección, solo el rendimiento). Lo probé en mi CPU Core2Duo, en un programa asm que se ejecuta prefetchw [rsp], y la instrucción se ejecuta sin fallar. Pero estoy 99% seguro de que no tiene ningún efecto.
Peter Cordes el
1
Ok, hay dos significados para "soportar" aquí: Win8.1 aparentemente requiere que PREFETCHW ( 0F 0D m8) no falla como una instrucción ilegal, que es el caso en las CPU Intel después de P4, al menos como se discute aquí . Lo ejecutan como un no-op (hasta Broadwell), y por supuesto eso es suficiente para Win8.1 (porque las captaciones previas son pistas especulativas de todos modos, que no afectan la corrección). No me había dado cuenta del comportamiento de NOP, o que era diferente en las CPU más antiguas.
Peter Cordes
1

Si puede usar la línea de comando en Windows, entonces:

  • Obtenga SysInternals coreinfo.exe de technet
  • correr coreinfo > coreinfo.txt
  • Abra el archivo en un editor de texto y realice una búsqueda (sin distinción entre mayúsculas y minúsculas) para cada una de las instrucciones.

PD: en Linux usarías grep flags /proc/cpuinfo | head -1

robocat
fuente
0

Hay una utilidad llamada coreinfo , provista por Microsoft, que proporciona funcionalidad como cat /proc/cpuinfoen Linux.

Tienes que buscar a través de esto, pero puedes encontrar la información aquí,

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

Lo -que significa que la CPU carece de esa característica, lo que *significa que tiene esa característica.

Ahora que lo veo, Microsoft realmente sugiere coreinfo para hacer la determinación en esa página de documento,

Coreinfo es una herramienta que puede usar para confirmar cuál de estas capacidades tiene su CPU.

El resultado completo para mi procesador, un Intel E7525, se ve así,

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
fuente
-5

"CPU Intel (R) Core (TM) i7-2600K a 3.40GHz"

"Instrucción PREFETCHWT1 no admitida"

De AIDA 64 Extreme. ^^

Estos tres: CMPXCHG16b, PrefetchW y LAHF / SAHF son necesarios para actualizar a una versión de 64 bits de Windows 10 desde una instalación actual de 64 bits de Windows 7.

Jota
fuente
66
PREFETCHWT1 es una instrucción separada y no es necesaria, así que no la confunda con PREFETCHW.
bwDraco