【信创】龙芯3A6000上lscpu与/proc/cpuinfo的区别

鹏大搞运维 2024-09-02 13:25:01

原文链接:

Hello,大家好啊!今天给大家带来一篇关于在Linux操作系统上,龙芯3A6000处理器中使用lscpu命令和查看/proc/cpuinfo文件之间的区别的文章。在Linux系统中,我们通常使用这两种方式来获取CPU的信息。然而,这两者所提供的信息虽然有重叠,但在具体细节和表现形式上存在一些差异。本文将详细介绍这两者的不同之处,以及在龙芯3A6000处理器上如何正确解读这些信息。欢迎大家分享转发,点个关注和在看吧!

lscpu命令概述

lscpu是一个用于显示CPU架构信息的命令行工具,属于util-linux包。它通过读取系统中的各个文件,如/proc/cpuinfo,并将信息整合展示在一个简洁的输出中。lscpu命令的优势在于它提供了一个概览,涵盖了处理器的多个重要特性,如CPU型号、架构、核心数、线程数等。

1.lscpu

pdsyw@pdsyw-PC:~/Desktop$ lscpuArchitecture: loongarch64Byte Order: Little EndianCPU(s): 8On-line CPU(s) list: 0-7Thread(s) per core: 2Core(s) per socket: 4Socket(s): 1NUMA node(s): 1CPU family: Loongson-64bitModel name: Loongson-3A6000BogoMIPS: 5000.00L1d cache: 256 KiBL1i cache: 256 KiBL2 cache: 1 MiBL3 cache: 16 MiBNUMA node0 CPU(s): 0-7Flags: cpucfg lam ual fpu lsx lasx crc32 lvz lbt_x86 lbt_arm lbt_mipspdsyw@pdsyw-PC:~/Desktop$

Architecture: 指示 CPU 的架构类型,如 loongarch64,表示该系统使用的是龙芯架构的 64 位处理器。Byte Order: 表示系统的字节顺序,Little Endian 表示最低有效字节位于最低的内存地址。CPU(s): 物理和逻辑处理器的总数量,8 表示有 8 个逻辑 CPU。On-line CPU(s) list: 当前在线的 CPU 列表,0-7 表示 CPU 0 到 CPU 7 都在线。Thread(s) per core: 每个核心的线程数,2 表示每个核心有 2 个线程,这表明该处理器支持超线程技术。Core(s) per socket: 每个插槽的核心数,4 表示每个 CPU 插槽有 4 个核心。Socket(s): CPU 插槽的数量,1 表示该系统中只有一个物理 CPU 插槽。NUMA node(s): 非一致性内存访问的节点数,1 表示只有一个 NUMA 节点。Model name: 表示 CPU 的具体型号,如 Loongson-3A6000。BogoMIPS: 一个用来粗略衡量 CPU 性能的指标,5000.00 表示 BogoMIPS 的值。Cache 信息: 包含 L1d、L1i、L2 和 L3 缓存的大小,分别是 256 KiB(数据缓存),256 KiB(指令缓存),1 MiB(L2 缓存)和 16 MiB(L3 缓存)。NUMA node0 CPU(s): 表示哪个 CPU 归属于哪个 NUMA 节点,0-7 表示所有 CPU 都属于 NUMA 节点 0。Flags: 表示 CPU 支持的指令集和特性标志。

2./proc/cpuinfo

pdsyw@pdsyw-PC:~/Desktop$ cat /proc/cpuinfo system type : generic-loongson-machineprocessor : 0package : 0core : 0cpu family : Loongson-64bitmodel name : Loongson-3A6000CPU Revision : 0x00FPU Revision : 0x00CPU MHz : 2500.00BogoMIPS : 5000.00TLB entries : 2112Address sizes : 48 bits physical, 48 bits virtualisa : loongarch32 loongarch64features : cpucfg lam ual fpu lsx lasx crc32 lvz lbt_x86 lbt_arm lbt_mipshardware watchpoint : yes, iwatch count: 8, dwatch count: 4processor : 1package : 0core : 0cpu family : Loongson-64bitmodel name : Loongson-3A6000CPU Revision : 0x00FPU Revision : 0x00CPU MHz : 2500.00BogoMIPS : 5000.00TLB entries : 2112Address sizes : 48 bits physical, 48 bits virtualisa : loongarch32 loongarch64features : cpucfg lam ual fpu lsx lasx crc32 lvz lbt_x86 lbt_arm lbt_mipshardware watchpoint : yes, iwatch count: 8, dwatch count: 4processor : 2package : 0core : 1cpu family : Loongson-64bitmodel name : Loongson-3A6000CPU Revision : 0x00FPU Revision : 0x00CPU MHz : 2500.00BogoMIPS : 5000.00TLB entries : 2112Address sizes : 48 bits physical, 48 bits virtualisa : loongarch32 loongarch64features : cpucfg lam ual fpu lsx lasx crc32 lvz lbt_x86 lbt_arm lbt_mipshardware watchpoint : yes, iwatch count: 8, dwatch count: 4processor : 3package : 0core : 1cpu family : Loongson-64bitmodel name : Loongson-3A6000CPU Revision : 0x00FPU Revision : 0x00CPU MHz : 2500.00BogoMIPS : 5000.00TLB entries : 2112Address sizes : 48 bits physical, 48 bits virtualisa : loongarch32 loongarch64features : cpucfg lam ual fpu lsx lasx crc32 lvz lbt_x86 lbt_arm lbt_mipshardware watchpoint : yes, iwatch count: 8, dwatch count: 4processor : 4package : 0core : 2cpu family : Loongson-64bitmodel name : Loongson-3A6000CPU Revision : 0x00FPU Revision : 0x00CPU MHz : 2500.00BogoMIPS : 5000.00TLB entries : 2112Address sizes : 48 bits physical, 48 bits virtualisa : loongarch32 loongarch64features : cpucfg lam ual fpu lsx lasx crc32 lvz lbt_x86 lbt_arm lbt_mipshardware watchpoint : yes, iwatch count: 8, dwatch count: 4processor : 5package : 0core : 2cpu family : Loongson-64bitmodel name : Loongson-3A6000CPU Revision : 0x00FPU Revision : 0x00CPU MHz : 2500.00BogoMIPS : 5000.00TLB entries : 2112Address sizes : 48 bits physical, 48 bits virtualisa : loongarch32 loongarch64features : cpucfg lam ual fpu lsx lasx crc32 lvz lbt_x86 lbt_arm lbt_mipshardware watchpoint : yes, iwatch count: 8, dwatch count: 4processor : 6package : 0core : 3cpu family : Loongson-64bitmodel name : Loongson-3A6000CPU Revision : 0x00FPU Revision : 0x00CPU MHz : 2500.00BogoMIPS : 5000.00TLB entries : 2112Address sizes : 48 bits physical, 48 bits virtualisa : loongarch32 loongarch64features : cpucfg lam ual fpu lsx lasx crc32 lvz lbt_x86 lbt_arm lbt_mipshardware watchpoint : yes, iwatch count: 8, dwatch count: 4processor : 7package : 0core : 3cpu family : Loongson-64bitmodel name : Loongson-3A6000CPU Revision : 0x00FPU Revision : 0x00CPU MHz : 2500.00BogoMIPS : 5000.00TLB entries : 2112Address sizes : 48 bits physical, 48 bits virtualisa : loongarch32 loongarch64features : cpucfg lam ual fpu lsx lasx crc32 lvz lbt_x86 lbt_arm lbt_mipshardware watchpoint : yes, iwatch count: 8, dwatch count: 4pdsyw@pdsyw-PC:~/Desktop$

system type: 系统类型,generic-loongson-machine 表示使用的是通用龙芯系统。processor: 逻辑处理器编号(从 0 到 7),与 lscpu 中的 CPU 列表一致。package: 表示处理器属于哪个 CPU 插槽,0 表示唯一的 CPU 插槽。core: 表示处理器的核心编号,例如 core 0、core 1 等等,展示了处理器核心的详细分配。cpu family: 处理器家族,如 Loongson-64bit,表示该处理器属于龙芯的 64 位架构家族。model name: 和 lscpu 中的 Model name 一致,即 Loongson-3A6000。CPU Revision: 处理器的修订版本。FPU Revision: 浮点运算单元的修订版本。CPU MHz: CPU 的主频,2500.00 MHz 表示 CPU 运行在 2.5 GHz。BogoMIPS: 和 lscpu 中的一致,表示 BogoMIPS 值为 5000.00。TLB entries: 表示转换后备缓冲区(TLB)的条目数,2112 表示该值。Address sizes: 显示 CPU 支持的物理和虚拟地址位宽,均为 48 位。isa: 显示支持的指令集,如 loongarch32 和 loongarch64。features: 显示 CPU 支持的特性标志,与 lscpu 中的 Flags 一致。hardware watchpoint: 显示硬件支持的观察点功能,说明有 8 个 iwatch 和 4 个 dwatch。

3.区别

1)数据来源

lscpu:

通过汇总 /proc/cpuinfo、sysfs 和其他系统数据源来生成简明的 CPU 信息报告。

提供了更高级别的系统概览,直接显示系统中每个核心的概要统计信息。

数据来自内核和系统信息,包含一些汇总后的字段,如架构、核心数量、插槽数量等。

/proc/cpuinfo:

是一个虚拟文件,直接由 Linux 内核导出,每个处理器核心的详细信息都以分开的条目显示。

数据非常详细且按每个处理器列出,适合需要逐个查看每个处理器细节的场景。

2)输出格式和细节

lscpu 的输出特点

概览式输出: 汇总所有处理器核心的信息,不逐个列出每个核心的细节。适合快速获取系统的 CPU 架构和核心配置。

架构信息: 包含 CPU 的架构类型(例如 loongarch64)、字节序、核心数量、线程数、插槽数等。这些信息用来展示 CPU 的硬件结构。

缓存层次结构: 显示 L1、L2、L3 缓存的大小,但不会逐个核心地列出这些信息,而是以统一格式显示系统中的缓存。

NUMA 节点信息: 提供了关于非一致性内存访问(NUMA)架构的信息,比如每个 NUMA 节点上包含的 CPU 核心。

汇总的 CPU 特性: 以单个字段列出 CPU 支持的所有特性(Flags),这些特性是以汇总的形式展示的。

/proc/cpuinfo 的输出特点

逐个核心详细信息: 针对每个逻辑 CPU 核心都会输出一个完整的条目,包含诸如核心编号、插槽编号、主频、缓存大小等详细信息。

逐个处理器的特性: 每个处理器的 flags 都独立列出,尽管多个处理器可能支持相同的特性,但每个核心的细节独立呈现。

CPU 频率和修订版本: 每个处理器核心的频率(CPU MHz)和修订版本(CPU Revision)都会单独列出,适合查看每个核心的频率是否一致。

具体硬件功能: 每个核心的特性更为具体,例如每个核心是否支持硬件观察点(hardware watchpoint)。

3)输出内容对比

字段

lscpu

/proc/cpuinfo

数据来源

汇总自 /proc/cpuinfo、sysfs 等

直接从内核导出的每个逻辑核心的详细数据

显示形式

概览,全局汇总

逐个处理器核心详细展示

架构信息

有,例如 Architecture: loongarch64

有,但散列在每个核心条目中

核心数量和线程数量

直接汇总显示,如 CPU(s): 8

每个处理器核心单独列出

缓存信息

汇总形式展示 L1、L2、L3 缓存大小

每个核心独立显示其缓存大小

NUMA 节点信息

汇总信息,例如 NUMA node0 CPU(s): 0-7

没有专门的 NUMA 信息,所有核心被逐个列出

特性 (flags)

汇总所有 CPU 支持的特性,以单行方式列出

每个核心的特性单独列出

主频 (CPU MHz)

无详细频率信息,通常显示一个大致的处理器类型

每个核心的主频单独列出

处理器修订版本

没有

每个核心的修订版本、FPU 修订版本单独列出

物理/虚拟地址空间

没有直接显示

每个核心单独显示支持的物理地址和虚拟地址位宽

硬件功能

汇总显示 CPU 的支持特性

每个核心的硬件功能单独列出,例如硬件观察点的数量

4)使用场景

lscpu 的适用场景:

需要快速了解系统总体 CPU 架构和硬件资源时。

不需要逐个核心分析的情况下,lscpu 提供的汇总信息可以满足大多数用户的需求。

/proc/cpuinfo 的适用场景:

需要逐个核心详细分析时(例如多核心系统的调优或调试)。

检查每个逻辑核心的频率、修订版本或硬件功能时。

通过本文的介绍,您已经了解了在Linux系统中使用lscpu和/proc/cpuinfo获取CPU信息的区别,以及它们在龙芯3A6000处理器上的应用。这两种工具各有优势,选择使用哪一个取决于您需要的信息深度。如果您觉得这篇文章有用,请分享和转发,同时别忘了点个关注和在看,以便未来获取更多实用的技术信息和工具推荐。感谢大家的阅读,我们下次再见!

0 阅读:0

鹏大搞运维

简介:感谢大家的关注