Cpuinfo から CPU フラグを読み取る
Yahya Irmak
2022年3月24日
Linux
Linux CPU
この記事では、Linux で cpuinfo 情報を読み取る方法について説明します。後で、CPU フラグとは何かとその意味を調べます。
Linux で cpuinfo を読む
/proc/cpuinfo ファイルには、コンピューターの CPU に関する詳細情報が含まれています。次のコマンドを使用して、ファイルの内容を読み取ります。
cat /proc/cpuinfo

ここで、私たちは見ることができます、
- プロセッサの数、
- CPU ベンダー、ファミリ、モデル名、
- CPU が持つコアの数、
- キャッシュ、TLB、clflush、およびアドレスサイズ、
- 多くのフラグやその他の情報。
この記事の残りの部分では、これらのフラグの最も一般的な意味を説明します。すべてのフラグの詳細については、arch/x86/include/asm/cpufeature.hを参照してください。
/proc/cpuinfo の最も一般的なフラグ
CPU には、モデルごとに異なる数百の機能があります。ここでは、公式文書で説明されている最も一般的なフラグの定義を含めます。
AMD が定義した CPU 機能
| フラグ | 説明 |
|---|---|
SYSCALL |
SYSCALL / SYSRET |
MP |
MP 対応 |
NX |
無効化を実行 |
MMXEXT |
AMDMMX 拡張機能 |
FXSR_OPT |
FXSAVE/FXRSTOR の最適化 |
GBPAGES |
pdpe1gb GB ページ |
LM |
ロングモード(x86-64) |
拡張 AMD フラグ
| フラグ | 説明 |
|---|---|
LAHF_LM |
ロングモードの LAHF / SAHF |
CMP_LEGACY |
はいの場合、ハイパースレッディングは無効です |
SVM |
安全な仮想マシン |
ABM |
高度なビット操作 |
MISALIGNSSE |
ずれた SSE モード |
3DNOWPREFETCH |
3DNow プリフェッチ命令 |
OSVW |
OS の目に見える回避策 |
IBS |
命令ベースのサンプリング |
XOP |
拡張 AVX 命令 |
SKINIT |
SKINIT / STGI 命令 |
WDT |
ウォッチドッグタイマー |
LWP |
軽量プロファイリング |
TCE |
翻訳キャッシュ拡張 |
TBM |
末尾のビット操作 |
TOPOEXT |
トポロジ拡張 CPUID リーフ |
PERFCTR_CORE |
コアパフォーマンスカウンター拡張 |
BPEXT |
データブレークポイント拡張 |
Intel 定義の CPU 機能
| フラグ | 説明 |
|---|---|
| FPU | オンボード FPU |
| VME | 仮想モード拡張 |
| DE | 拡張機能のデバッグ |
| PSE | ページサイズの拡張 |
| TSC | タイムスタンプカウンター |
| MSR | モデル固有のレジスタ |
| PAE | 物理アドレス拡張 |
| MCE | マシンチェックの例外 |
| MTRR | メモリタイプ範囲レジスタ |
| PGE | ページグローバルイネーブル |
| MCA | マシンチェックアーキテクチャ |
| PAT | ページ属性テーブル |
| MMX | マルチメディア拡張機能 |
| PBE | 保留中の休憩の有効化 |
| DTES64 | 64 ビットデバッグストア |
| MWAIT | モニターモニター/ Mwait のサポート |
| VMX | ハードウェア仮想化 |
| SMX | より安全なモード |
| TM2 | サーマルモニター2 |
| XTPR | タスク優先メッセージを送信する |
| PDCM | パフォーマンス機能 |
| PCID | プロセスコンテキスト識別子 |
| DCA | ダイレクトキャッシュアクセス |
| ハイパーバイザー | ハイパーバイザーで実行 |
仮想化フラグ
| フラグ | 説明 |
|---|---|
| EPT | Intel 拡張ページテーブル |
| VPID | Intel 仮想プロセッサ ID |
| NPT | AMD ネストページテーブルのサポート |
| LBRV | AMDLBR 仮想化サポート |
| NRIPS | nrip_save AMDSVM next_rip save |
| TSCRATEMSR | tsc_scale AMDTSC スケーリングのサポート |
| VMCBCLEAN | vmcb_clean AMDVMCB クリーンビットのサポート |
| FLUSHBYASID | AMD の ASID によるフラッシュのサポート |
| DECODEASSISTS | AMD DecodeAssists のサポート |
| DECODEASSISTS | AMD でフィルタリングされた一時停止インターセプト |
| PFTHRESHOLD | AMD 一時停止フィルターのしきい値 |
| VMMCALL | vmcall よりも vmmcall を優先する |
補助フラグ
| フラグ | 説明 |
|---|---|
| IDA | インテルダイナミックアクセラレーション |
| ARAT | 常に APIC タイマーを実行 |
| CPB | AMD コアパフォーマンスブースト |
| EPB | IA32_ENERGY_PERF_BIAS サポート |
| PLN | Intel 電力制限通知 |
| PTS | インテルパッケージのサーマルステータス |
| DTHERM | デジタル熱センサー |
| PROC_FEEDBACK | AMD ProcFeedbackInterface |
| INTEL_PT | Intel プロセッサトレース |
検出されたバグフラグ
| フラグ | 説明 |
|---|---|
| F00F | Intel F00F |
| FDIV | FPU FDIV |
| COMA | Cyrix6x86 コマ |
| AMD_TLB_MMATCH | tlb_mmatch AMD エラッタ 383 |
| AMD_APIC_C1E | apic_c1e AMD エラッタ 400 |
| 11AP | 不正なローカル APIC 通称 11AP |
| FXSAVE_LEAK | FXSAVE が FOP / FIP / FOP をリーク |
| CLFLUSH_MONITOR | AAI65、モニターの前に CLFLUSH が必要 |
| SYSRET_SS_ATTRS | SYSRET は SS 属性を修正しません |
チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
著者: Yahya Irmak
Yahya Irmak has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.
LinkedIn