有没有办法在 Linux 终端中直接找到处理器微架构?
例如,如果它是 Nehalem、Westmere 或 Sandy Bridge,即使它带有可安装的应用程序。
答案1
处理器代号并非内置工具中固有的可用名称。您最接近的方法是使用以下方法获取处理器的型号:
lscpu
或者cat /proc/cpuinfo
仅显示处理器型号:lscpu | grep -i "Model name:" | cut -d':' -f2- -
还,此来源建议下载 hwloc
Hwloc(便携式硬件局部性)是一款小型实用程序,它以简洁的可视化图表报告处理器的结构。该图显示了内核数量、超线程和缓存大小。一张图就能说明一切。
sudo apt-get install hwloc hwloc
微架构代号将在图表下方列出。
答案2
理论上,您正在寻找的命令是lscpu
,尽管它实际上并没有以文本字符串的形式告诉您 CPU 生成的名称。
示例输出:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 78
Stepping: 3
CPU MHz: 2808.000
BogoMIPS: 5616.00
Hypervisor vendor: Microsoft
Virtualization type: full
相关值是CPU 系列和模型。您可以将它们(将十进制值转换为十六进制值,或反之亦然)与这张图表来自英特尔如果您有一个较旧的 CPU,但该图表自 2012 年以来就没有更新过。下面有一条评论提供了较新的信息(2015 年 5 月)。
例如,在上面的数据中,我的 CPU 有系列 6 和型号 78 (0x4E)。不幸的是,这没有列在表格中。
另一个命令是cat /proc/cpuinfo
。这会产生大致相同的信息,但型号名称行,其中包含处理器型号。例如,我得到以下内容:
$cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 78
model name : Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz
stepping : 3
microcode : 0xffffffff
cpu MHz : 2808.000
cache size : 256 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 6
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm pni pclmulqdq est tm2 ssse3 fma cx16 xtpr sse4_1 sse4_2 movbe popcnt aes xsave osxsave avx f16c rdrand hypervisor
bogomips : 5616.00
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
...
从中你可以看出我有一个英特尔(R) 酷睿™ i7-6600U,这是第六代(“i7-”后面的第一个数字;参见英特尔处理器编号页面) 核心系列处理器。遗憾的是,没有真正简单的方法将这些信息映射回像“Skylake”这样的字符串。
我发现最好的方法是去http://ark.intel.com/然后将型号字符串(“i7-6600U”)输入搜索框,选择出现的内容(应该只有一个),然后选中右侧的“相关产品”框。将出现一行“以前的产品 <CODENAME>”,您可以使用它来查找代号。我意识到这远非适合脚本的简洁方法,但如果您只关心代号,那么能用上面给出的内容编写该部分脚本。
答案3
me@lappy486:~$ cat /sys/devices/cpu/caps/pmu_name
icelake