64-бітні вимоги до Windows 10: Чи підтримує мій процесор CMPXCHG16b, PrefetchW та LAHF / SAHF?


12

На даний момент я намагаюся з’ясувати, було б чи ні було б корисно оновити ноутбук (Windows 7, 64-розрядна версія) для Windows 10. Проблема полягає в тому, що Microsoft у своїх специфікаціях Windows 10 заявляє, що використовувати Потрібна 64-бітна версія Windows 10, процесор, який підтримує CMPXCHG16b, PrefetchW та LAHF / SAHF. Я знаю, що мій процесор 64-розрядний (Intel Core i5-2430M @ 2,40 ГГц), але я не знаю, як дізнатися, підтримує він CMPXCHG16b, PrefetchW та LAHF / SAHF, і я не маю поняття, що це означає.

Я спробував скористатись Google і не отримав жодних результатів, які мали б для мене сенс, лише порівняння мого i5 та подібного процесора AMD. Я також перевірив веб-сайт ARK від Intel. Якщо хтось міг би вказати мені, де я можу отримати більше інформації, я був би дуже вдячний.


1
Я думаю, що ти занадто переживаєш. I5 порівняно недавні і будуть добре. Однак загальним правилом є не запускати 64-бітну, якщо у вас немає> 4 Гб оперативної пам’яті, накладні витрати можуть зробити роботу повільніше, ніж швидше. До 32-бітного Windows можна отримати прямий доступ лише трохи менше 4 Гб, тому лише якщо ви перейдете, то варто перейти на 64 біт
— Джуліан Найт,

1
Якщо ви можете оновити до Windows 8.1, ви можете оновити до Windows 10. Ви також можете запустити перевірку сумісності для обох, якщо хочете.
— Рамхаунд

Запустіть інструмент під Windows 7, який відображає дані CPUID, і це говорить про те, чи підтримує процесор майбутнє. Я використовую I5-3xxxM і тут працює Windows 8.1, тому він має 3 функції. У вас лише 1 покоління позаду, тому воно також має підтримувати всі функції.
— magicandre1981

1
@JulianKnight Я б порадив 64-бітним всім, хто має 2 або 3 Гб, і спеціалізовану відеокарту, оскільки пам'ять графічної картки також повинна вписуватися в адресний простір. Якщо у вас 4 Гб оперативної пам’яті та 2 ГБ відеокарти, то ви щойно витратили 2 ГБ оперативної пам’яті і гірші, ніж якщо б ви встановили 64 біт.
— Мокубай

1
Не хвилюйтеся з цього приводу. За винятком декількох ранніх процесорів Atom або x86_64, усі процесори Intel протягом дещо десятиліття тому можуть без проблем запускати Windows 10
— phuclv

Відповіді:


21

Ваш процесор підтримує ці функції. Насправді для запуску 64-розрядної Windows 8.1 потрібні ті ж функції. Цю вимогу задовольняють усі сучасні процесори і, як правило, є лише проблемою для певних процесорів Core 2 та попередніх версій.

Що це за інструкції?

  • Ранні процесори AMD64 бракували CMPXCHG16Bінструкції, що є розширенням CMPXCHG8Bінструкції, присутнім у більшості процесорів після 80486. Подібно до CMPXCHG8B, CMPXCHG16Bдозволяє здійснювати атомні операції над вісімковими словами. Це корисно для паралельних алгоритмів, які використовують порівняння та обмін даними, більшими за розмір вказівника, поширені в алгоритмах без блокування та очікування. Без CMPXCHG16Bцього потрібно використовувати обхідні шляхи, такі як критичний розділ або альтернативні підходи без блокування. Його відсутність також заважає 64-бітовій Windows до Windows 8.1 мати адресний простір у режимі користувача, більший за 8 терабайт. 64-розрядна версія Windows 8.1 вимагає інструкції.
  • PREFETCHWІнструкція натяк на процесор для попередньої вибірки даних з пам'яті в кеш в очікуванні для запису ( Intel Instruction Set Reference , PDF Сторінка 888). Ця інструкція була введена в 3DNow AMD ! набір інструкцій, який застарілий за винятком інструкцій PREFETCHта PREFETCHWінструкцій. Усі процесори AMD, починаючи з Athlon 64, підтримують цю інструкцію. Однак ця інструкція може не підтримуватися у деяких старих 64-розрядних процесорах Intel, що передують Nehalem .

  • LAHFІ SAHFнавантаження і зберігати вміст AHрегістра в регістрі прапорів, відповідно (Intel Instruction Set Reference, PDF сторінки 530 і 1025). Деякі старі процесори Intel без апаратної віртуалізації (VT-x) не підтримують цю інструкцію під час роботи в 64-бітному режимі ; вони здебільшого обмежені певними процесорами низького класу, що передують Негалему . Деякі дуже старі процесори AMD64 також не мають цієї функції.

  • Ранні процесори AMD64 та Intel 64 бракували інструкцій LAHF та SAHF у 64-бітному режимі. Компанія AMD представила ці інструкції (також у 64-розрядному режимі) зі своїми процесорами Athlon 64, Opteron та Turion 64, переглянуті D у березні 2005 року, в той час як Intel представила інструкції з Pentium 4 G1, починаючи з грудня 2005 року. 64-розрядна версія Windows 8.1 вимагає цієї функції.

Що це означає для мене?

  • Ці процесори підтримують усі процесори Intel Core i7, i5 або i3, а також усі процесори Pentium або Celeron, засновані на Clarkdale , Arrandale , Sandy Bridge або новіших мікроархітектурах, а також процесори Intel Atom і Celeron Silvermont . Для AMD ці особливості мають усі, крім найстаріших 64-розрядних процесорів.

  • Зазвичай ці інструкції повинні вас турбувати, лише якщо у вас є процесор, який передував вище. Додаток Get Windows 10 підкаже, чи можете ви оновити до Windows 10. Якщо процесор не відповідає вимогам, ви отримаєте " ЦП не підтримується ".


1
Слід зазначити, однак, в той час як ці конкретні функції такі ж , як потрібно для запуску Windows , 8.1, які не всі CPU функції , необхідні для запуску Windows 10 потрібно для запуску Windows 8.1. Зокрема, PAE та NX не вимагаються відповідно до
— пункту

1
Підтримка PREFETCHW є новою (для Intel) у Broadwell, тому Windows 8.1 її точно не потребує. Докази: gcc компілюється __builtin_prefetch(p,1,2) в PREFETCHT1 з -march=haswell, а в PREFETCHW з -march=broadwell. Крім того, /proc/cpuinfoдамп Linux із цього процесора Haswell не включає 3dnowprefetch , але він працює на широкомасштабному і Skylake. Див. Unix.stackexchange.com/questions/43539/… про значення прапорів.
— Пітер Кордес

1
Можливо, ви думали про інструкції SSE PREFETCHh, які існували принаймні з PentiumIII.
— Пітер Кордес

1
@bwDraco: так. Її 0F 0D r/m8машинне кодування кодує декодування як багатобайтовий NOP на процесорах, які не підтримують PREFETCHW, тому, очевидно, немає проблеми сумісності. (Поведінка інструкцій попереднього вибору не впливає на правильність, просто на продуктивність.) Я спробував це на своєму процесорі Core2Duo, в програмі asm, яка працює prefetchw [rsp], і інструкція виконується без помилок. Але я на 99% впевнений, що це не має ефекту.
— Пітер Кордес

1
Гаразд, тут є два значення "підтримка": Win8.1, очевидно, вимагає, щоб PREFETCHW ( 0F 0D m8) не виникла як незаконна інструкція, що стосується процесорів Intel після P4, як мінімум, як обговорювалося тут . Вони запускають його як неоперативний (до Бродвелл), і, звичайно, цього достатньо для Win8.1 (адже попередні вибори так чи інакше є умоглядними підказками, які не впливають на правильність). Я не усвідомлював поведінку NOP або що це було інакше на старих процесорах.
— Пітер Кордес

1

Якщо ви можете використовувати командний рядок у Windows, тоді:

  • Отримайте SysInternals coreinfo.exe від technet
  • Біжи coreinfo > coreinfo.txt
  • Відкрийте файл у текстовому редакторі та знайдіть (нечутливий до регістру) для кожної з інструкцій

PS: В Linux ви б використовували grep flags /proc/cpuinfo | head -1


0

Існує утиліта під назвою coreinfo , що надається Microsoft, яка забезпечує такі функціональні можливості, як cat /proc/cpuinfoв Linux.

Ви повинні проглянути це, але ви можете знайти тут інформацію,

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

Це -означає, що ЦП бракує цієї функції, *означає, що вона має цю функцію.

Тепер, коли я дивлюся, основна інформація фактично пропонується корпорацією Майкрософт, щоб визначитись на цій сторінці документа,

Coreinfo - це інструмент, за допомогою якого можна підтвердити, які з цих можливостей має ваш процесор. +

Повний результат для мого процесора Intel E7525 виглядає приблизно так,

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

"Процесор Intel (R) Core (TM) i7-2600K процесор @ 3,40 ГГц"

"Інструкція PREFETCHWT1 не підтримується"

Від AIDA 64 Extreme. ^^

Ці три - CMPXCHG16b, PrefetchW та LAHF / SAHF необхідні для оновлення до 64-бітної версії Windows 10 з поточної 64-бітної установки Windows 7.


6
PREFETCHWT1 - це окрема інструкція, і вона не потрібна, тому не плутайте її з PREFETCHW.
— bwDraco
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.