x86

x86

プロセッサに特定の機能があるかどうかはどうすればわかりますか? (64ビット命令セット、ハードウェアサポート仮想化、暗号化アクセラレータなど)ファイルの/proc/cpuinfo行にこの情報があることを知っていますが、flagsこれらすべての不思議な略語はどういう意味ですか?

たとえば、次の抜粋によれば、/proc/cpuinfo64ビットCPUはありますか?ハードウェア仮想化はありますか?

model name      : Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm tpr_shadow vnmi flexpriority

ベストアンサー1

x86

(32 ビット、つまり i386–i686、64 ビット、つまり amd64。つまり、ワークステーション、ノートブック、またはサーバーです。)

よくある質問:私には…

  • 64ビット(x86_64/AMD64/Intel64)?lm
  • ハードウェア仮想化(VMX/AMD-V)?vmx(インテル),svm(AMD)
  • 加速AES(AES-NI)?aes
  • TXT(TPM)?smx
  • ハイパーバイザー(だから発表された)?hypervisor

他のほとんどの機能は、コンパイラやカーネル作成者にのみ興味があります。

すべてのフラグ

完全なリストはカーネルソースコードファイルにあります。arch/x86/include/asm/cpufeatures.h

Intelで定義したCPU機能、CPUIDレベル0x00000001(edx)

また、見ることができますウィキペディア表2-27インテル Advanced Vector Extension プログラミングリファレンス

AMDで定義されたCPU特性、CPUIDレベル0x80000001

また、見ることができますウィキペディア表2-23インテル Advanced Vector Extension プログラミングリファレンス

Transmetaで定義されたCPU特性、CPUIDレベル0x80860001

  • recovery:CPUが回復モードになっています。
  • longrun:長期電力制御
  • lrti:LongRunテーブルインタフェース

その他の機能、Linux定義マッピング

  • cxmmx: Cyrix MMX 拡張
  • k6_mtrr:AMD K6非標準MTRR
  • cyrix_arr:サイリックスARR(=MTRR)
  • centaur_mcr: センタウリMCR(=MTRR)
  • constant_tsc:TSCが一定の速度でティックします。
  • up:SMPカーネルはUPで実行されます。
  • art: 常に実行されるタイマー
  • arch_perfmon: Intel アーキテクチャ PerfMon
  • pebs: 正確なイベントベースのサンプリング
  • bts: 支店追跡店
  • rep_good:マイクロコードが非常にうまく機能していることを示します。
  • acc_power:AMD電力蓄積メカニズム
  • nopl:NOPL(0F 1F)コマンド
  • xtopology: CPU トポロジ列挙拡張
  • tsc_reliable:TSC信頼できると知られている
  • nonstop_tsc:TSCC状態で止まらないでください
  • cpuid:CPU自体にはCPUID命令があります。
  • extd_apicid:拡張APICIDを含む(8ビット)
  • amd_dcm:マルチノードプロセッサ
  • aperfmperf:APERFMPERF
  • eagerfpu: 非遅延FPUリカバリ
  • nonstop_tsc_s3:TSCS3状態で停止しない
  • tsc_known_freq:TSC既知の周波数
  • mce_recovery:CPUには回復可能なマシンチェック機能があります。

Intel 定義 CPU 特性、CPUID レベル 0x00000001(ecx)

また、見ることができますウィキペディア表2-26インテル Advanced Vector Extension プログラミングリファレンス

VIA/Cyrix/Centaur、CPUIDレベル0xC0000001で定義されたCPU属性

  • rng:乱数ジェネレータ今(xstore)
  • rng_en:乱数ジェネレータ有効
  • ace:CPU暗号化(xcrypt)
  • ace_en: CPU 内暗号化の有効化
  • ace2: 高度な暗号化エンジン v2
  • ace2_en: ACE v2 の有効化
  • phe: PadLockハッシュエンジン
  • phe_en:板状熱交換器の活性化
  • pmm:ロックモンゴメリー乗数
  • pmm_en:PMMが有効

より拡張されたAMDフラグ:CPUIDレベル0x80000001、ecx

  • lahf_lm:ロングモードでは、フラグ(LAHF)からAHをロードし、フラグ(SAHF)にAHを保存します。
  • cmp_legacy:そうであれば、ハイパースレッディングは無効です。
  • svm:"セキュリティ仮想マシン":AMD-V
  • extapic: APIC 空間拡張
  • cr8_legacy:32ビットモードのCR8
  • abm:高度なビット操作
  • sse4a:SSE-4A
  • misalignsse:誤ってソートされたデータに対して機能しているときに、特定のレガシーSSE命令が一般保護例外(#GP)を生成するかどうかを示します。また、CR0とソートチェックビットによって異なります。
  • 3dnowprefetch:3DNowプリフェッチガイドライン
  • osvw:表現するオペレーティングシステムに表示される回避策これにより、オペレーティングシステムはプロセッサエラーを解決できます。
  • ibs:命令ベースのサンプリング
  • xop:拡張AVXガイドライン
  • skinit:SKINIT/STGI説明
  • wdt:監視タイマー
  • lwp:軽量分析
  • fma4:4-オペランドMAC命令
  • tce: 翻訳キャッシュの拡張
  • nodeid_msr:ノードID MSR
  • tbm:末尾ビット演算
  • topoext:トポロジ拡張CPUIDリーフ
  • perfctr_core:核性能カウンター拡張
  • perfctr_nb: NB パフォーマンスカウンター拡張
  • bpext:データブレークポイントの拡張
  • ptsc:パフォーマンスタイムスタンプカウンター
  • perfctr_l2:L2パフォーマンスカウンター拡張
  • mwaitxMWAIT拡張する(MONITORX/ MWAITX

補助フラグ:Linux定義 - さまざまなCPUIDレベルに分散された機能

  • ring3mwait:リング3モニター/スタンバイ
  • cpuid_fault:Intel CPUIDエラー
  • cpb: AMDコアの性能向上
  • epb:IA32_ENERGY_PERF_BIASのサポート
  • cat_l3: L3キャッシュ割り当て技術
  • cat_l2: L2キャッシュ割り当て技術
  • cdp_l3:コードとデータ優先順位L3
  • invpcid_single:効果的invpcidCR4.PCIDE=1
  • hw_pstate:AMD HW-Pステータス
  • proc_feedback:AMD ProcFeedbackインターフェース
  • sme:AMDセキュアメモリ暗号化
  • pti:カーネルページテーブルの分離(シーザー)
  • retpoline:ライトボリン簡単幽霊変形2(間接分岐)
  • retpoline_amd:AMDレトポリン緩和
  • intel_ppin:インテルプロセッサー在庫番号
  • avx512_4vnniw: AVX-512ニューラルネットワークガイドライン
  • avx512_4fmaps:AVX-512乗算 - 累算単精度
  • mba: メモリ帯域幅の割り当て
  • rsb_ctxsw: コンテキストスイッチでRSBを埋める

仮想化フラグ:Linux定義

  • tpr_shadow:インテルTPRシャドウ
  • vnmi: Intel 仮想 NMI
  • flexpriority: Intel FlexPriority
  • ept:インテル拡張ページテーブル
  • vpid: Intel 仮想プロセッサ ID
  • vmmcallVMMCALL好むVMCALL

Intel 定義 CPU 機能、CPUID レベル 0x00000007:0(ebx)

拡張ステータス機能、CPUIDレベル0x0000000d:1(eax)

  • xsaveopt: 最適化XSAVE
  • xsavec:XSAVEC
  • xgetbv1XGETBVECX = 1
  • xsaves: XSAVES/XRSTORS

Intel 定義 CPU QoS サブリーフ、CPUID レベル 0x0000000F:0(edx)

  • cqm_llc:有限責任会社サービス品質

Intel 定義 CPU QoS サブリーフ、CPUID レベル 0x0000000F:1(edx)

  • cqm_occup_llc: LLC占有モニタリング
  • cqm_mbm_total: LLC フル MBM モニタリング
  • cqm_mbm_local: LLCローカルMBMモニタリング

AMD定義CPU機能、CPUIDレベル0x80000008(ebx)

  • clzero:CLZEROガイドライン
  • irperf:廃棄性能カウンタを示します。
  • xsaveerptr:常にFPエラーポインタの保存/復元

熱および電力管理リーフ、CPUIDレベル0x00000006(eax)

  • dtherm(前dts):デジタルサーマルセンサー
  • ida:インテル動的加速
  • arat:常にAPICタイマーの実行
  • pln:インテル電力制限のお知らせ
  • pts:インテルパッケージの熱状態
  • hwp: Intel ハードウェア P ステータス
  • hwp_notify:HWP通知
  • hwp_act_window:HWPアクティブウィンドウ
  • hwp_epp:HWPエネルギー性能の好み
  • hwp_pkg_req:HWPパッケージレベル要求

AMD SVM機能識別、CPUIDレベル0x8000000a(edx)

  • npt: AMDネストしたページテーブルのサポート
  • lbrv: AMD LBR仮想化サポート
  • svm_lock:AMD SVMロックされたMSR
  • nrip_save:AMD SVM next_ripを保存
  • tsc_scale: AMD TSCスケーリングサポート
  • vmcb_clean:AMD VMCBクリーンビットサポート
  • flushbyasid: ASID による AMD リフレッシュのサポート
  • decodeassists: AMDデコードサポートのサポート
  • pausefilter:AMDフィルタリングの一時停止をブロック
  • pfthreshold:AMD一時停止フィルタしきい値
  • avic:仮想割り込みコントローラ
  • vmsave_vmload:仮想VMSAVE VMLOAD
  • vgif: 仮想GIF

Intelで定義したCPU機能、CPUIDレベル0x00000007:0(ecx)

  • avx512vbmi: AVX512ベクトルビット演算命令
  • umip:ユーザーモードコマンド保護
  • pku: ユーザー空間保護キー
  • ospke: オペレーティングシステム保護キーが有効になっています。
  • avx512_vbmi2: 追加 AVX512 ベクトルビット演算命令
  • gfni: ガロアフィールドの新しい命令
  • vaes: ベクトル AES
  • vpclmulqdq: キャリプリ乗算ダブルクワッドワード
  • avx512_vnni: ベクトルニューラルネットワークガイドライン
  • avx512_bitalg:VPOPCNT[B,W]およびVPSHUF-BITQMB命令
  • avx512_vpopcntdq:DW/QWベクトルのPOPCNT
  • la57: レベル 5 ページテーブル
  • rdpid:RDPIDコマンド

AMD定義CPU機能、CPUIDレベル0x80000007(ebx)

  • overflow_recov:MCA オーバーフロー回復サポート
  • succor: 修正不可能なエラー抑制と回復
  • smca: 拡張可能な MCA

CPUエラー検出(Linux定義)

  • f00f:インテルF00F
  • fdiv:CPUFDIV
  • coma:サイリックス6x86コマ
  • amd_tlb_mmatchtlb_mmatchAMD正誤表383
  • amd_apic_c1eapic_c1eAMD正誤表400
  • 11ap:無効なローカルAPIC(別名11AP)
  • fxsave_leak:FXSAVEからFOP / FIP / FOP流出
  • clflush_monitor:MONITORの前にAAI65とCLFLUSHが必要です。
  • sysret_ss_attrs:SYSRETはSS属性を回復できません。
  • espfix: "" IRETから16ビットSSへのESP / RSP上位ビットの破損
  • null_seg:セレクタをクリアするとベースが保存されます。
  • swapgs_fence:SWAPGSはGS入力に依存しません。
  • monitor:リモートCPUを起動するにはIPIが必要です。
  • amd_e400:Eratum 400の影響を受けるCPU
  • cpu_meltdown:CPUが影響を受ける衝突攻撃カーネルページテーブルの分離が必要です。
  • spectre_v1:CPUが影響を受ける幽霊条件付分岐を用いた変種1攻撃
  • spectre_v2:CPUが影響を受ける幽霊間接分岐を用いた変種2攻撃
  • spec_store_bypass:影響を受けるCPU投機店バイパス脆弱性(スペクター変種4)。

arch/x86/include/asm/cpufeatures.hPSこのリストはカーネルソースコードから派生しています。フラグはソースコードと同じ順序でリストされます。機能が欠落している場合は、機能の説明へのリンクを追加し、名前があいまいな機能の簡単な説明を作成し、新しいカーネルバージョンのリストを更新して助けてください。現在のリストのソースは次のとおりです。Linux 4.15さらに、後で追加された内容もあります。

おすすめ記事