debian cpuinfo中的指令集查看与含义
在 debian 中,cpu 的指令集以“标志位(flags)”的形式呈现,主要位于 /proc/cpuinfo 的 flags 字段,也可用 lscpu 的 flags 行查看。不同架构(如 x86_64、aarch64)的标志名称不同,但都表示处理器支持的功能与扩展。示例:cat /proc/cpuinfo 或 lscpu | grep flags。
x86_64 常见指令集标志示例
- 基础与浮点
- 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, pdpe1gb, rdtscp, lm(constant_tsc, arch_perfmon 等亦常见)
- sse 系列
- sse3, pclmulqdq, ssse3, fma, cx16, sse4_1, sse4_2, x2apic, popcnt, tsc_deadline_timer, aes, xsave, avx, f16c, rdrand
- avx/avx2 及 fma
- avx, avx2, fma, bmi1, bmi2, abm, erms, invpcid
- 内存与缓存一致性/原子
- clflushopt, clwb, xsaveopt, xsavec, xsaves, invlpgb(依 cpu 而定)
- 虚拟化
- vmx(intel)/ svm(amd),以及 ept、vpid 等扩展
- 安全与侧信道缓解
- smep, smap, sse4a(部分 amd), sha_ni, rdrand, rdseed, spec_ctrl, ibpb, stibp, ssbd(或 spec_store_bypass_disable 等变体)
- 其他常见扩展
- adx, rdseed, prfchw, clzero(依型号而定)
说明:以上为实际系统中常见的 flags 名称示例,具体出现哪些取决于 cpu 型号与微码/内核支持。可用 grep -E ‘vmx|svm|aes|avx|avx2|bmi|fma|sse[3-4]|sha’ /proc/cpuinfo 快速筛选关键扩展。
aarch64 常见指令集标志示例
- 基础与浮点/向量
- 加密与哈希
- aes, pmull, sha1, sha2, crc32
- 原子与内存模型
- 编译器/系统特性
- 高级浮点与转换
- asimdhp, fphp, asimdrdm, jscvt, fcma, dcpop, asimddp, asimdfhm
- 推测执行防护
- 其他扩展
说明:aarch64 的标志位命名与 x86_64 完全不同,上表为常见项。不同内核/硬件版本会增减标志,例如某些发行版在较新内核上会新增 jscvt、fcma、ssbs、lrcpc 等。
如何快速查看与筛选
- 查看完整 flags
- cat /proc/cpuinfo | grep -m1 ‘^flags’
- lscpu | grep ‘^flags’
- 仅查看支持的扩展关键词
- x86_64:lscpu | grep -E ‘vmx|svm|aes|avx|avx2|bmi|fma|sse|sha’
- aarch64:lscpu | grep -E ‘asimd|aes|sha|pmull|atomics|ssbs|jscvt|fcma|lrcpc’
- 多核/多处理器系统
- /proc/cpuinfo 会为每个逻辑处理器重复输出,通常各核 flags 一致;如需确认一致性,可比较多个 processor 段的 flags。