Linux

有沒有辦法轉儲 CPU 的 CPUID 資訊?

  • May 11, 2016

我熟悉lshw,/proc/cpuinfo等。但是有沒有一種方法可以獲取 CPU 的CPUID 操作碼

有一種名為的工具cpuid可以用來查詢比lshwor中通常存在的更詳細的資訊/proc/cpuinfo。在我的 Fedora 19 系統上,我可以使用以下命令安裝該軟體包:

$ sudo yum install cpuid

安裝後,cpuid是有關底層 CPU 的詳細資訊的寶庫。

多個版本

至少有 2 個版本的工具,稱為cpuid. 在 Debian/Ubuntu 上:

$ dpkg -p cpuid
Package: cpuid
Priority: optional
Section: admin
Installed-Size: 68
Maintainer: Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com>
Architecture: amd64
Version: 3.3-9
Depends: libc6 (>= 2.5-0ubuntu1)
Size: 11044
Description: Intel and AMD x86 CPUID display program
This program displays the vendor ID, the processor specific features,
the processor name string, different kinds of instruction set
extensions present, L1/L2 Cache information, and so on for the
processor on which it is running.
.
 Homepage: http://www.ka9q.net/code/cpuid/
Original-Maintainer: Aurélien GÉRÔME <ag@roxor.cx>

在 CentOS/Fedora/RHEL 上:

$ rpm -qi cpuid
Name        : cpuid
Version     : 20130610
Release     : 1.fc19
Architecture: x86_64
Install Date: Wed 29 Jan 2014 09:48:17 PM EST
Group       : System Environment/Base
Size        : 253725
License     : MIT
Signature   : RSA/SHA256, Sun 16 Jun 2013 12:30:11 PM EDT, Key ID 07477e65fb4b18e6
Source RPM  : cpuid-20130610-1.fc19.src.rpm
Build Date  : Sun 16 Jun 2013 05:39:24 AM EDT
Build Host  : buildvm-13.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.etallen.com/cpuid.html
Summary     : Dumps information about the CPU(s)
Description :
cpuid dumps detailed information about x86 CPU(s) gathered from the CPUID
instruction, and also determines the exact model of CPU(s). It supports Intel,
AMD, and VIA CPUs, as well as older Transmeta, Cyrix, UMC, NexGen, and Rise
CPUs.

**注意:**下面的輸出將專注於Todd Allen 的實現cpuid,即 Fedora 打包的實現。

例子

上半部分是非常標準的東西。

$ cpuid -1 | less
CPU:
  vendor_id = "GenuineIntel"
  version information (1/eax):
     processor type  = primary processor (0)
     family          = Intel Pentium Pro/II/III/Celeron/Core/Core 2/Atom, AMD Athlon/Duron, Cyrix M2, VIA C3 (6)
     model           = 0x5 (5)
     stepping id     = 0x5 (5)
     extended family = 0x0 (0)
     extended model  = 0x2 (2)
     (simple synth)  = Intel Core i3 / i5 / i7  (Clarkdale K0) / Pentium U5000 Mobile / Pentium P4505 / U3405 / Celeron Mobile P4000 / U3000 (Arrandale K0), 32nm
  miscellaneous (1/ebx):
     process local APIC physical ID = 0x1 (1)
     cpu count                      = 0x10 (16)
     CLFLUSH line size              = 0x8 (8)
     brand index                    = 0x0 (0)
  brand id = 0x00 (0): unknown

但較低的部分更具啟發性。

 feature information (1/edx):
     x87 FPU on chip                        = true
     virtual-8086 mode enhancement          = true
     debugging extensions                   = true
     page size extensions                   = true
     time stamp counter                     = true
     RDMSR and WRMSR support                = true
     physical address extensions            = true
     machine check exception                = true
     CMPXCHG8B inst.                        = true
     APIC on chip                           = true
     SYSENTER and SYSEXIT                   = true
     memory type range registers            = true
     PTE global bit                         = true
     machine check architecture             = true
     conditional move/compare instruction   = true
     page attribute table                   = true
     page size extension                    = true
     processor serial number                = false
     CLFLUSH instruction                    = true
     debug store                            = true
     thermal monitor and clock ctrl         = true
     MMX Technology                         = true
     FXSAVE/FXRSTOR                         = true
     SSE extensions                         = true
     SSE2 extensions                        = true
     self snoop                             = true
     hyper-threading / multi-core supported = true
     therm. monitor                         = true
     IA64                                   = false
     pending break event                    = true

它將向您顯示有關記憶體結構的詳細資訊:

 cache and TLB information (2):
     0x5a: data TLB: 2M/4M pages, 4-way, 32 entries
     0x03: data TLB: 4K pages, 4-way, 64 entries
     0x55: instruction TLB: 2M/4M pages, fully, 7 entries
     0xdd: L3 cache: 3M, 12-way, 64 byte lines
     0xb2: instruction TLB: 4K, 4-way, 64 entries
     0xf0: 64 byte prefetching
     0x2c: L1 data cache: 32K, 8-way, 64 byte lines
     0x21: L2 cache: 256K MLC, 8-way, 64 byte lines
     0xca: L2 TLB: 4K, 4-way, 512 entries
     0x09: L1 instruction cache: 32K, 4-way, 64-byte lines

有關 CPU 記憶體的更多詳細資訊:

  deterministic cache parameters (4):
     --- cache 0 ---
     cache type                           = data cache (1)
     cache level                          = 0x1 (1)
     self-initializing cache level        = true
     fully associative cache              = false
     extra threads sharing this cache     = 0x1 (1)
     extra processor cores on this die    = 0x7 (7)
     system coherency line size           = 0x3f (63)
     physical line partitions             = 0x0 (0)
     ways of associativity                = 0x7 (7)
     WBINVD/INVD behavior on lower caches = false
     inclusive to lower caches            = false
     complex cache indexing               = false
     number of sets - 1 (s)               = 63

名單還在繼續。

參考

引用自:https://unix.stackexchange.com/questions/111590