私は現在、日付が少し古いノートブック(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サイトもチェックしました。誰かが私にもっと情報を得ることができる場所を教えてもらえたら、本当に感謝しています。
これらの指示は何ですか?
CMPXCHG16B
命令は、16バイトの値に対して atomic compare-and-exchange を実行します。すべての最新のx86-64プロセッサでサポートされていますが、一部の初期のAMD64 CPUではサポートされていませんでした。この命令は、CompareExchange128
と呼ばれることもあります。 以下も参照してください: cmpxchg16b命令を欠いている古いx64プロセッサはどのくらい普及していますか?
- 初期の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月にステップ実行する命令を導入しました。この機能が必要です。
これは私にとって何を意味しますか?
すべてのIntel Core i7、i5、またはi3プロセッサ、および Clarkdale 、 Arrandaleに基づくすべてのPentiumまたはCeleronプロセッサ 、 Sandy Bridge 、または新しいマイクロアーキテクチャがこれらの機能をサポートし、Intel AtomおよびCeleron Silvermont プロセッサー。 AMDの場合、最も古い64ビットプロセッサを除くすべてにこれらの機能があります。
一般に、これらが以前からあるプロセッサを使用している場合にのみ、これらの命令について心配する必要があります。 Get Windows 10アプリは、Windows 10にアップグレードできるかどうかを教えてくれます。 プロセッサーが要件を満たしていない場合は、「CPUはサポートされていません。 = "
Windowsでコマンドラインを使用できる場合:
coreinfo > coreinfo.txt
を実行しますPS:Linuxではgrep flags /proc/cpuinfo | head -1
を使用します
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: