研究心得------->CPU信息的获得,比较全面的

比较|心得

最近到整理了一份CPU的信息,应该算是比较全面的吧。
几乎现在所有的X86 CPU都内置了CPUID指令以辨别真伪,一些CPU厂商例如AMD,VIA等还内置了更加丰富的扩展CPUID指令,用着更方便了。
下面我们利用Delphi来实现一个CPU检测的软件。
CPUID的调用方式如下:
asm
push eax
push ebx
push ecx
push edx
mov eax,X
//******************************************************
//cpuid指令,因为Delphi的汇编编译器没有内置该指令,
//所以用该指令的机器语言代码$0F,$A2来实现
//******************************************************
db $0F,$A2
pop edx
pop ecx
pop ebx
pop eax
end;
CPUID指令的参数就是EAX,mov eax,X这一句就是把X赋给EAX 。
返回的参数存储在EAX,EBX,ECX,EDX之中。
我们可以写一个函数:
type
TCPUIDResult = record
EAX: DWord;
EBX: DWord;
ECX: DWord;
EDX: DWord;
end;
……
function CPUID(EAX:DWord): TCPUIDResult;
asm
push eax
push ebx
push ecx
push edx
mov eax,EAX
//******************************************************
//cpuid指令,因为Delphi的汇编编译器没有内置该指令,
//所以用该指令的机器语言代码$0F,$A2来实现
//******************************************************
db $0F,$A2
mov Result.EAX,EAX
mov Result.EBX,EBX
mov Result.ECX,ECX
mov Result.EDX,EDX
pop edx
pop ecx
pop ebx
pop eax
end;

CPUID参数及返回值列表:
EAX= 0000_0000h
输入 EAX=0000_0000h 得到CPUID指令所支持的最大值和厂家的名称字符串
输出 EAX=xxxx_xxxxh 得到CPUID指令所支持的最大值 #1
EBX-EDX-ECX 厂家的名称字符串 #2
GenuineIntel Intel 处理器
UMC UMC UMC UMC 处理器
AuthenticAMD AMD 处理器
CyrixInstead Cyrix 处理器
NexGenDriven NexGen 处理器
CentaurHauls Centaur 处理器
RiseRiseRise Rise Technology 处理器
GenuineTMx86 Transmeta 处理器
Geode by NSC National Semiconductor 处理器
说明 描述
#1 pre-B0 step Intel P5 处理器返回 EAX=0000_05xxh.
#2 pre-B0 step Intel P5 处理器不能返回厂商字符串
EAX= 0000_0001h
输入 EAX=0000_0001h 得到处理器 type/family/model/stepping和 面貌标识
输出 EAX=xxxx_xxxxh 处理器 type/family/model/stepping
extended family extended family 是 bits 27..20.
00h Intel P4
01h Intel Itanium 2 (IA-64)
extended model extended model 是 bits 19..16.
type type是 bit 13 和 bit 12.
11b 保留
10b 第二块处理器
01b Overdrive 处理器
00b 第一处理器
family family是bits 11..8.
4 most 80486s
AMD 5x86
Cyrix 5x86
5 Intel P5, P54C, P55C, P24T
NexGen Nx586
Cyrix M1
AMD K5, K6
Centaur C6, C2, C3
Rise mP6
Transmeta Crusoe TM3x00 and TM5x00
6 Intel P6, P2, P3
AMD K7
Cyrix M2, VIA Cyrix III
7 Intel Itanium (IA-64)
F 如果是这个值的话就看extended family
model model 是 bits 7..4.
Intel F 如果是这个值的话就看 extended model
Intel 80486 0 i80486DX-25/33
1 i80486DX-50
2 i80486SX
3 i80486DX2
4 i80486SL
5 i80486SX2
7 i80486DX2WB
8 i80486DX4
9 i80486DX4WB
UMC 80486 1 U5D
2 U5S
AMD 80486 3 80486DX2
7 80486DX2WB
8 80486DX4
9 80486DX4WB
E 5x86
F 5x86WB
Cyrix 5x86 9 5x86
Cyrix MediaGX 4 GX, GXm
Intel P5-core 0 P5 A-step
1 P5
2 P54C
3 P24T Overdrive
4 P55C
7 P54C
8 P55C (0.25μm)
NexGen Nx586 0 Nx586 or Nx586FPU (only later ones)
Cyrix M1 2 6x86
Cyrix M2 0 6x86MX
VIA Cyrix III 5 Cyrix M2 core
6 WinChip C5A core
7 WinChip C5B core (if stepping = 0..7)
7 WinChip C5C core (if stepping = 8..F)
8 WinChip C5C-T core (if stepping = 0..7)
AMD K5 0 SSA5 (PR75, PR90, PR100)
1 5k86 (PR120, PR133)
2 5k86 (PR166)
3 5k86 (PR200)
AMD K6 6 K6 (0.30 μm)
7 K6 (0.25 μm)
8 K6-2
9 K6-III
D K6-2+ or K6-III+ (0.18 μm)
Centaur 4 C6
8 C2
9 C3
Rise 0 mP6 (0.25 μm)
2 mP6 (0.18 μm)
Transmeta 4 Crusoe TM3x00 and TM5x00
Intel P6-core 0 P6 A-step
1 P6
3 P2 (0.28 μm)
5 P2 (0.25 μm)
6 P2 with on-die L2 cache
7 P3 (0.25 μm)
8 P3 (0.18 μm)
with 256 KB on-die L2 cache
A P3 (0.18 μm)
with 1 or 2 MB on-die L2 cache
B P3 (0.13 μm)
with 256 or 512 KB on-die L2 cache

时间: 2024-08-03 02:56:47

研究心得------->CPU信息的获得,比较全面的的相关文章

Linux下查看CPU信息[/proc/cpuinfo]

最近在研究linux系统负载的时候,接触到一些关于CPU信息查看的知识,和大家分享一下.通过对/proc/cpuinfo文件中的参数的分析,也学到了不少东西. 在linux操作系统中,CPU的信息在启动的过程中被装载到虚拟目录/proc下的cpuinfo文件中,我们可以通过 cat /proc/cpuinfo 查看一下: 上图是本人电脑的CPU信息,下面我们来分析其中几个比较重要的指标: processor     逻辑处理器的id. physical id    物理封装的处理器的id. co

[Android]获取整体APP CPU信息

通过proc获取CPU信息.adb shell cat /proc/stat | grep cpu > totalcpu0此处第一行的数值表示的是CPU总的使用情况,所以我们只要用第一行的数字计算就可以了.下表解析第一行各数值的含义:参数 解析(单位:jiffies)(jiffies是内核中的一个全局变量,用来记录自系统启动一来产生的节拍数,在linux中,一个节拍大致可理解为操作系统进程调度的最小时间片,不同linux内核可能值有不同,通常在1ms到10ms之间)user 从系统启动开始累计到

解析Android获取系统cpu信息,内存,版本,电量等信息的方法详解_Android

Android获取系统cpu信息,内存,版本,电量等信息 1.CPU频率,CPU信息:/proc/cpuinfo和/proc/stat 通过读取文件/proc/cpuinfo系统CPU的类型等多种信息.读取/proc/stat 所有CPU活动的信息来计算CPU使用率 下面我们就来讲讲如何通过代码来获取CPU频率: 复制代码 代码如下: package com.orange.cpu; import java.io.BufferedReader;import java.io.FileNotFound

Linux查看CPU信息详解

Linux查看CPU信息 首先,大家如果看到有什么不懂的地方,欢迎吐槽!!! 我会在当天或者第二天及时回复,并且改进~~ 参数说明: Physical id 相同表示为同一个物理CPU Processor 表示逻辑CPU Cpu cores CPU核数,内核个数 Core id 内核id号 Siblings 每个物理CPU里面的逻辑CPU个数 物理CPU 两个 processor 0 processor 2 processor 4 processor 6 core id 0 core id 2

13 种在 Linux 系统上检测 CPU 信息的工具

13 种在 Linux 系统上检测 CPU 信息的工具 问题: 我想要了解我的电脑关于CPU处理器的详细信息,查看CPU信息比较有效地方法是什么? 根据你的需要,有各种各样的关于你的CPU处理器信息你需要了解,比如CPU供应商名.模型名.时钟频率.插槽/内核的数量, L1/L2/L3缓存配置.可用的处理器能力(比如:硬件虚拟化.AES, MMX, SSE)等等.在Linux中,有许多命令行或基于GUI的工具就能来展示你的CPU硬件的相关具体信息. 1. /proc/cpuinfo 最简单的方法就

flex能获取CPU信息和MAC地址吗?

问题描述 flex能获取CPU信息和MAC地址吗? 问题补充:我的意思是获取别人的MAC地址,作为唯一标识,java好像只能获取本地的吧. 解决方案 java 可以获取CPU MAC 用flex调用java代码java 有一个 sigar-1.6.3.jar 这个可以获取硬件信息.参考文档:http://www.cnblogs.com/mypm/archive/2011/03/27/1996621.html

CentOS查看CPU信息(CPU型号 CPU的个数 CPU是几核)

[1]物理CPU:实际Server中插槽上的CPU个数. 物理cpu数量:可以数不重复的 physical id 有几个. [2]逻辑CPU Linux用户对 /proc/cpuinfo 这个文件肯定不陌生. 它是用来存储cpu硬件信息的 信息内容分别列出了processor 0 – n 的规格.这里需要注意,如果你认为n就是真实的cpu数的话, 就大错特错了 一般情况,我们认为一颗cpu可以有多核,加上intel的超线程技术(HT), 可以在逻辑上再分一倍数量的cpu core出来 逻辑CPU

linux系统使用python获取cpu信息脚本分享_python

linux系统使用python获取cpu信息脚本分享 复制代码 代码如下: #!/usr/bin/env Pythonfrom __future__ import print_functionfrom collections import OrderedDictimport pprint def CPUinfo():    ''' Return the information in /proc/CPUinfo    as a dictionary in the following format:

dos下通过wmic命令查看硬盘和内存/CPU信息(windows自带命令查看硬件信息)_DOS/BAT

如何在windows系统自带命令查看硬件信息,怎样dos命令查看硬盘和内存/CPU信息?最直接的是:开始→运行→CMD打开命令提示符,在该窗口下输入systeminfo执行,即可看到几乎所有想知道的系统信息,甚至包括机器上已安装的网卡及其IP. 问题描述: 如何从系统中 查看主板上内存条的数量.最佳答案: 在cmd命令下 输入:wmic memorychip list brief 或者 wmic MEMPHYSICAL list brief 就会看到内存条的数量 rem 查看cpu wmic c