core.cpuid
実行環境のCPUの特性を調べ また、キャッシュサイズやアセンブラの最適化ヒントになる情報を提供します。 これらの情報のうちいくつかは、把握するのが非常に困難です。 以下の参考文献のうちいくつかは、検索エンジンのキャッシュにしか残っていません! このモジュールのコードは以下の資料に準じて実装されています:- "Intel(R) 64 and IA-32 Architectures Software Developers Manual, Volume 2A: Instruction Set Reference, A-M" (2007).
- "AMD CPUID Specification", Advanced Micro Devices, Rev 2.28 (2008).
- "AMD Processor Recognition Application Note For Processors Prior to AMD Family 0Fh Processors", Advanced Micro Devices, Rev 3.13 (2005).
- "AMD Geode(TM) GX Processors Data Book", Advanced Micro Devices, Publication ID 31505E, (2005).
- "AMD K6 Processor Code Optimisation", Advanced Micro Devices, Rev D (2000).
- "Application note 106: Software Customization for the 6x86 Family", Cyrix Corporation, Rev 1.5 (1998)
- http://ftp.intron.ac/pub/document/cpu/cpuid.htm
- "Geode(TM) GX1 Processor Series Low Power Integrated X86 Solution", National Semiconductor, (2002)
- "The VIA Isaiah Architecture", G. Glenn Henry, Centaur Technology, Inc (2008).
- http://www.sandpile.org/ia32/cpuid.htm
- http://grafi.ii.pw.edu.pl/gbm/x86/cpuid.html
- "What every programmer should know about memory", Ulrich Depper, Red Hat, Inc., (2007).
- "CPU Identification by the Windows Kernel", G. Chappell (2009).
- http://www.geoffchappell.com/viewer.htm?doc=studies/windows/km/cpu/cx8.htm
- "Intel(R) Processor Identification and the CPUID Instruction, Application Note 485" (2009).
現在は x86 と Itanium のみで動作します。 多くのプロセッサがCPUIDのマイクロコードにバグを抱えているため、 しばしば、キャッシュに関する情報が誤っていることがあります。 License:
Boost License 1.0. Authors:
Don Clugston, Tomas Lindquist Olsen <tomas@famolsen.dk> Source:
core/cpuid.d
- キャッシュサイズと動作
- 表示用に、ベンダー名文字列を返します。 これは絶対にCPU機能の判定には使わないで下さい! いくつかのCPUはプログラマブルなベンダIDを持っていることにも注意して下さい。
- 表示用に、プロセッサ名文字列を返します。
- データキャッシュの情報。キャッシュ階層が5よりも小さいときは、 残りの部分は uint.max (== メモリ空間全体) で埋められます
- オンチップのx87 FPUがあるか?
- MMX対応かどうか
- SSE対応かどうか
- SSE2対応かどうか
- SSE3対応かどうか
- SSSE3対応かどうか
- SSE4.1対応かどうか
- SSE4.2対応かどうか
- SSE4a対応かどうか
- AMD 3DNOW 対応かどうか
- AMD 3DNOW Ext 対応かどうか
- AMD の MMX 拡張対応かどうか
- fxsave/fxrstor が使えるかどうか
- cmov が使えるかどうか
- rdtsc が使えるかどうか
- cmpxchg8b が使えるかどうか
- cmpxchg8b が使えるかどうか
- SYSENTER/SYSEXIT が使えるかどうか
- 3DNow の prefetch が使えるかどうか
- LAHF と SAHF が 64-bit モードで使えるかどうか
- POPCNT が使えるかどうか
- LZCNT が使えるかどうか
- Intel64 あるいは AMD 64 かどうか
- IA64 (Itanium) プロセッサかどうか
- HyperThreading 対応かどうか
- CPUごとのスレッド数
- CPUのコア数
- この CPU は PentiumPro..Core2 用よりも AMD K7 用のコード向きか? アセンブリコードのための最適化ヒントです。 互換性を考えて、CPUはそのマイクロアーキテクチャに対して分類・比較されています。 32-bit X86 では、比較は Intel PPro/PII/PIII/PM ファミリに対して行われています。 メジャーな 32-bit x86 アーキテクチャの '代' は以下のようでした: (1) Intel P6 (PentiumPro, PII, PIII, PM, Core, Core2). (2) AMD Athlon (K7, K8, K10). (3) Intel NetBurst (Pentium 4, Pentium D). (4) In-order Pentium (Pentium1, PMMX, Atom) そのほかの初期のCPU (Nx586, AMD K5, K6, Centaur C3, Transmeta, Cyrix, Rise) はほぼ in-order 実行です。 新しいプロセッサのいくつかは既存のカテゴリには入りません: Intel Atom 230/330 (family 6, model 0x1C) は in-order コアですが、 Centaur Isiah = VIA Nano (family 6, model F) は out-of-order コアです。 各時代の中では、最適化のテクニックは概ね同じです (例: Group 4 では命令ペアリング). 命令セットの大幅な改善だ、代が変わるときに行われています。
- この CPU は PentiumPro..Core2 用よりも Pentium4 用のコード向きか?
- この CPU は Pentium Pro 用よりも Pentium I 用のコード向きか?
- プロセッサのタイプ(ベンダ依存)。 表示用途以外には使用しないで下さい。
- プロセッサのタイプ(ベンダ依存)。 表示用途以外には使用しないで下さい。
- プロセッサのタイプ(ベンダ依存)。 表示用途以外には使用しないで下さい。
Copyright Don Clugston 2007 - 2009.
|
Page generated by Ddoc.