Requisitos de 64 bits do Windows 10: Minha CPU suporta CMPXCHG16b, PrefetchW e LAHF / SAHF?


12

Atualmente, estou tentando descobrir se seria uma boa ideia atualizar meu notebook ligeiramente desatualizado (Windows 7, 64 bits) para o Windows 10. O problema é que a Microsoft declara nas especificações do Windows 10 que deve usar o É necessária uma versão de 64 bits do Windows 10, um processador compatível com CMPXCHG16b, PrefetchW e LAHF / SAHF. Sei que meu processador é de 64 bits (Intel Core i5-2430M a 2.40 GHz), mas não sei como descobrir se ele suporta CMPXCHG16b, PrefetchW e LAHF / SAHF, e não tenho ideia do que isso significa.

Eu tentei usar o Google e não obtive resultados que fizessem sentido para mim, apenas uma comparação do meu i5 e um processador AMD semelhante. Também verifiquei o site ARK da Intel. Se alguém pudesse me indicar onde posso obter mais informações, ficaria muito grato.


1
Eu acho que você está se preocupando demais. Os i5 são relativamente recentes e ficarão bem. No entanto, uma regra geral é não executar 64 bits, a menos que você tenha mais de 4 GB de RAM, as despesas gerais podem tornar as coisas mais lentas do que rápidas. O Windows de 32 bits só pode acessar diretamente um pouco menos do que 4GB-lo apenas se você passar por cima de que vale a pena 64bit indo
Julian Knight

1
Se você pode atualizar para o Windows 8.1, você pode atualizar para o Windows 10. Você também pode executar uma verificação de compatibilidade para ambos, se desejar.
Ramhound 23/06

Execute uma ferramenta no Windows 7 que exibe os dados da CPUID; isso informa se a CPU suporta os futuros. Eu uso um I5-3xxxM e aqui o Windows 8.1 funciona, então ele tem os 3 recursos. Você está com apenas uma geração de atraso, por isso também deve suportar todos os recursos.
magicandre1981

1
@JulianKnight Eu aconselho 64 bits a qualquer pessoa com 2 ou 3 GB e uma placa gráfica dedicada, pois a memória da placa gráfica também precisa se encaixar no espaço de endereço. Se você possui 4 GB de RAM e uma placa gráfica de 2 GB, acabou de gastar 2 GB de RAM e está pior do que se tivesse instalado 64 bits.
Mokubai

1
Não se preocupe com isso. Exceto para alguns átomo ou x86_64 primeiras CPUs, todos os processadores da Intel em (um pouco mais de) um back década pode executar o Windows 10, sem problema
phuclv

Respostas:


21

Seu processador suporta esses recursos. De fato, os mesmos recursos são necessários para executar o Windows 8.1 de 64 bits. Esse requisito é atendido por todos os processadores modernos e geralmente é apenas um problema com determinados processadores Core 2 e anteriores.

Quais são essas instruções?

  • Os processadores AMD64 anteriores não possuíam as CMPXCHG16Binstruções, o que é uma extensão das CMPXCHG8Binstruções presentes na maioria dos processadores pós-80486. Semelhante a CMPXCHG8B, CMPXCHG16Bpermite operações atômicas em palavras octais. Isso é útil para algoritmos paralelos que usam comparar e trocar dados maiores que o tamanho de um ponteiro, comum em algoritmos sem bloqueio e sem espera. Sem a necessidade de CMPXCHG16Busar soluções alternativas, como uma seção crítica ou abordagens alternativas sem bloqueio. Sua ausência também impede que o Windows de 64 bits anterior ao Windows 8.1 tenha um espaço de endereço no modo de usuário maior que 8 terabytes. A versão de 64 bits do Windows 8.1 requer a instrução.
  • A PREFETCHWinstrução é uma dica ao processador para buscar previamente os dados da memória no cache, antecipando a gravação ( Referência do conjunto de instruções da Intel , PDF página 888). Esta instrução foi introduzida no 3DNow! conjunto de instruções, que foi descontinuado, exceto pelas instruções PREFETCHe PREFETCHW. Todos os processadores AMD desde o Athlon 64 suportam esta instrução. No entanto, esta instrução pode não ser suportada em alguns processadores Intel de 64 bits anteriores ao Nehalem .

  • O LAHFe SAHFcarga e armazenar o conteúdo do AHregisto para as bandeiras registar, respectivamente (Instrução Intel Definir referência, as páginas PDF 530 e 1025). Alguns processadores Intel mais antigos sem a funcionalidade de virtualização de hardware (VT-x) não suportam esta instrução quando executados no modo longo de 64 bits ; estes são limitados principalmente a certos processadores low-end anteriores ao Nehalem . Alguns processadores AMD64 muito antigos também não possuem esse recurso.

  • Os primeiros processadores AMD64 e Intel 64 não possuíam instruções de LAHF e SAHF no modo de 64 bits. A AMD apresentou essas instruções (também no modo de 64 bits) com seus processadores Athlon 64, Opteron e Turion 64 de revisão D em março de 2005, enquanto a Intel apresentou as instruções com o Pentium 4 G1 em dezembro de 2005. A versão de 64 bits do Windows 8.1 requer esse recurso.

O que isto significa para mim?

  • Todos os processadores Intel Core i7, i5 ou i3, bem como todos os processadores Pentium ou Celeron baseados nas arquiteturas Clarkdale , Arrandale , Sandy Bridge ou mais recentes, suportam esses recursos, assim como os processadores Intel Atom e Celeron Silvermont . Para a AMD, todos os processadores, exceto os mais antigos de 64 bits, têm esses recursos.

  • Geralmente, você só precisa se preocupar com essas instruções se tiver um processador que antecede o descrito acima. O aplicativo Get Windows 10 informará se você pode atualizar para o Windows 10. Se o processador não atender aos requisitos, você receberá " A CPU não é suportada " .


1
No entanto, é importante ressaltar que, embora esses recursos específicos sejam os mesmos necessários para executar o Windows 8.1, nem todos os recursos de CPU necessários para executar o Windows 10 são necessários para executar o Windows 8.1. Em particular, PAE e NX são não exigido 8.1, mas obrigatória para 10
qasdfdsaq

1
O suporte ao PREFETCHW é novo (para Intel) em Broadwell, portanto o Windows 8.1 certamente não exige. Evidência: o gcc é compilado __builtin_prefetch(p,1,2) para PREFETCHT1 com -march=haswelle PREFETCHW com -march=broadwell. Além disso, o /proc/cpuinfodespejo de Linux desta CPU Haswell não inclui 3dnowprefetch , mas sim em broadwell e skylake. Consulte unix.stackexchange.com/questions/43539/… para obter o significado de sinalizadores.
Peter Cordes

1
Talvez você estivesse pensando nas instruções SSE PREFETCHh que existem desde o PentiumIII, pelo menos.
Peter Cordes

1
@bwDraco: sim. Sua 0F 0D r/m8codificação de código de máquina decodifica como um NOP de vários bytes em CPUs que não suportam PREFETCHW, portanto, aparentemente não há problema de compatibilidade. (O comportamento das instruções de pré-busca não afeta a correção, apenas o desempenho.) Eu tentei na minha CPU Core2Duo, em um programa asm que é executado prefetchw [rsp], e a instrução é executada sem falhas. Mas tenho 99% de certeza de que não tem efeito.
Peter Cordes

1
Ok, existem dois significados para "apoiar" aqui: o Win8.1 aparentemente requer que PREFETCHW ( 0F 0D m8) não falhe como uma instrução ilegal, o que é o caso das CPUs Intel após o P4 pelo menos como discutido aqui . Eles o executam como no-op (até Broadwell) e, é claro, isso é suficiente para o Win8.1 (porque prefetches são dicas especulativas de qualquer maneira, que não afetam a correção). Eu não tinha percebido o comportamento do NOP ou que era diferente em CPUs mais antigas.
Peter Cordes

1

Se você pode usar a linha de comando no Windows, então:

  • Obtenha o SysInternals coreinfo.exe da technet
  • Corre coreinfo > coreinfo.txt
  • Abra o arquivo em um editor de texto e faça uma busca (sem distinção entre maiúsculas e minúsculas) para cada uma das instruções

PS: No Linux você usaria grep flags /proc/cpuinfo | head -1


0

Existe um utilitário chamado coreinfo , fornecido pela Microsoft, que fornece funcionalidades como cat /proc/cpuinfono Linux.

Você precisa pesquisar isso, mas pode encontrar as informações aqui,

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

A -média que a CPU não possui esse recurso, a *média que possui esse recurso.

Agora, ao que parece, o CoreInfo é sugerido pela Microsoft para determinar a página de documento,

O Coreinfo é uma ferramenta que você pode usar para confirmar quais desses recursos sua CPU possui.

O resultado completo do meu processador, um Intel E7525, tem a seguinte aparência:

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 (i) i7-2600K a 3,40 GHz"

"Instrução PREFETCHWT1 não suportada"

Do AIDA 64 Extreme. ^^

Esses três - CMPXCHG16b, PrefetchW e LAHF / SAHF são necessários para atualizar para uma versão de 64 bits do Windows 10 a partir de uma instalação atual de 64 bits do Windows 7.


6
PREFETCHWT1 é uma instrução separada e não é necessária; portanto, não confunda com PREFETCHW.
bwDraco
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.