web-dev-qa-db-ja.com

Windows 10 64ビット要件:CPUはCMPXCHG16b、PrefetchW、LAHF / SAHFをサポートしていますか?

私は現在、日付が少し古いノートブック(Windows 7、64ビット)をWindows 10に更新するのが良いアイデアかどうかを調べています。問題は、Microsoftが Windows 10の仕様で述べていることです) 64ビット版のWindows 10を使用するには、CMPXCHG16b、PrefetchW、LAHF/SAHFをサポートするプロセッサが必要です。私のプロセッサが64ビット(Intel Core i5-2430M @ 2.40 GHz)であることはわかっていますが、CMPXCHG16b、PrefetchW、LAHF/SAHFをサポートしているかどうかを確認する方法がわかりません。これらの意味がわかりません。

私はGoogleを使ってみましたが、私にとって意味のある結果は得られませんでした。私のi5と同様のAMDプロセッサの比較だけです。 IntelのARK Webサイトもチェックしました。誰かが私にもっと情報を得ることができる場所を教えてもらえたら、本当に感謝しています。

12
roebsi

お使いのプロセッサはこれらの機能をサポートしています。実際、64ビットのWindows 8.1を実行するには、同じ機能が必要です。この要件はすべての最新のプロセッサで満たされ、通常、特定のCore 2以前のプロセッサでのみ問題になります。

これらの指示は何ですか?

  • 初期のAMD64プロセッサにはCMPXCHG16B命令がありませんでした。これは、ほとんどの80486以降のプロセッサに存在するCMPXCHG8B命令の拡張です。 CMPXCHG8Bと同様に、CMPXCHG16Bは8進ワードのアトミック操作を許可します。これは、ロックフリーおよびウェイトフリーアルゴリズムで一般的な、ポインターのサイズより大きいデータの比較とスワップを使用する並列アルゴリズムに役立ちます。 CMPXCHG16Bがない場合は、クリティカルセクションや別のロックフリーアプローチなどの回避策を使用する必要があります。また、Windows 8.1より前の64ビットWindowsでは、8テラバイトを超えるユーザーモードアドレス空間を使用できません。 64ビットバージョンのWindows 8.1には、指示が必要です。
  • PREFETCHW命令は、書き込みに備えてメモリからキャッシュにデータをプリフェッチするためのプロセッサへのヒントです( Intel命令セットリファレンス 、PDF 888ページ)。この命令は、AMDのDNow!命令セットで導入されました。これは、PREFETCHおよびPREFETCHW命令を除いて非推奨です。 Athlon 64以降のすべてのAMDプロセッサがこの命令をサポートしています。ただし、この命令は Nehalem より前の古い64ビットIntelプロセッサではサポートされていない場合があります。

  • LAHFおよびSAHFは、AHレジスタの内容をそれぞれフラグレジスタにロードして格納します(Intel命令セットリファレンス、PDF 530および1025ページ)。ハードウェア仮想化(VT-x)機能のない一部の古いIntelプロセッサ この命令はサポートされていません 64ビットで実行する場合 ロングモード ;これらは主にNehalemより前の特定のローエンドプロセッサに限定されています。一部の非常に古いAMD64プロセッサにもこの機能がありません。

  • 初期のAMD64およびIntel 64 CPUには、64ビットモードのLAHFおよびSAHF命令がありませんでした。 AMDは、これらの命令を(64ビットモードでも)Athlon 64、Opteron、Turion 64リビジョンDプロセッサで2005年3月に導入し、Intelは、Pentium 4 G1が2005年12月にステップ実行する命令を導入しました。この機能が必要です。

これは私にとって何を意味しますか?

21
bwDraco

Windowsでコマンドラインを使用できる場合:

  • SysInternalsを取得 coreinfo.exe from technet
  • coreinfo > coreinfo.txtを実行します
  • テキストエディターでファイルを開き、各指示について検索(大文字と小文字は区別されません)を実行します。

PS:Linuxではgrep flags /proc/cpuinfo | head -1を使用します

1
robocat

Linuxでcat /proc/cpuinfoのような機能を提供する、Microsoft提供の coreinfo というユーティリティがあります。

これを検索する必要がありますが、ここで情報を見つけることができます。

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

-はCPUにその機能がないことを意味し、*はCPUにその機能があることを意味します。

私が見たところで、 coreinfoは実際にはそのドキュメントページで決定するためにMicrosoftから提案されています

Coreinfo は、CPUがこれらの機能のどれを持っているかを確認するために使用できるツールです。+

私のプロセッサ、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:
0
Evan Carroll