Требования к 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. Я также проверил веб-сайт Intel ARK. Если бы кто-то мог указать мне, где я могу получить больше информации, я был бы очень благодарен.

roebsi
источник
1
Я думаю, что вы слишком беспокоитесь. I5 относительно недавно и будет в порядке. Тем не менее, общее правило - не запускать 64-битную версию, если у вас не более 4 ГБ ОЗУ, из-за накладных расходов работа может выполняться медленнее, чем быстрее. Windows 32bit может иметь прямой доступ только чуть меньше, чем 4 ГБ, поэтому, только если вы перешли, стоит 64bit
Джулиан Найт
1
Если вы можете обновить до Windows 8.1, вы можете обновить до Windows 10. Вы также можете запустить проверку совместимости для обоих, если хотите.
Ramhound
Запустите инструмент под Windows 7, который отображает данные CPUID, который сообщает вам, поддерживает ли CPU фьючерсы. Я использую 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 , 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-битном режиме ; они в основном ограничены некоторыми младшими процессорами, предшествующими Nehalem . Некоторые очень старые процессоры 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. Если процессор не соответствует требованиям, вы получите « CPU не поддерживается ».

bwDraco
источник
1
Следует отметить, что хотя эти конкретные функции и требуются для запуска Windows 8.1, не все функции ЦП, необходимые для запуска Windows 10, необходимы для запуска Windows 8.1. В частности, PAE и NX не требуются по 8.1, но обязательны для 10
qasdfdsaq
1
Поддержка PREFETCHW является новой (для Intel) в Broadwell, поэтому Windows 8.1, безусловно, не требует этого. Доказательства: gcc компилируется __builtin_prefetch(p,1,2) в PREFETCHT1 с -march=haswell, а в PREFETCHW с -march=broadwell. Кроме того, /proc/cpuinfoдамп Linux из этого процессора Haswell не включает в себя 3dnowprefetch , но он распространяется на broadwell и 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, по крайней мере, как обсуждалось здесь . Они запускают его как бездействие (до Broadwell), и, конечно, этого достаточно для Win8.1 (потому что предварительные выборки в любом случае являются спекулятивными подсказками, которые не влияют на правильность). Я не осознавал поведение NOP или то, что оно было другим на старых процессорах.
Питер Кордес
1

Если вы можете использовать командную строку в Windows, то:

  • Получить SysInternals coreinfo.exe из Technet
  • Бегать coreinfo > coreinfo.txt
  • Откройте файл в текстовом редакторе и выполните поиск (без учета регистра) для каждой из инструкций

PS: в Linux вы бы использовали grep flags /proc/cpuinfo | head -1

robocat
источник
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 фактически предлагает Microsoft сделать определение на этой странице документа,

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.

Jota
источник
6
PREFETCHWT1 является отдельной инструкцией и не требуется, поэтому не путайте ее с PREFETCHW.
bwDraco