|
|
|
研究心得-------CPU信息的获得,比较全面的。 |
热 ★★★★ |
|
研究心得-------CPU信息的获得,比较全面的。 |
|
作者:闵涛 文章来源:闵涛的学习笔记 点击数:2307 更新时间:2009/4/23 18:38:05 |
|
最近到整理了一份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 AMD K7 1 Athlon (0.25 μm) 2 Athlon (0.18 μm) 3 Duron (SF core) 4 Athlon (TB core) 6 Athlon (PM core) 7 Duron (MG core) 8 Athlon (TH core) A Athlon (Barton core) Intel P4-core 0 P4 (0.18 μm) 1 P4 (0.18 μm) 2 P4 (0.13 μm) 3 P4 (0.09 μm) stepping stepping 在 bits 3..0. Stepping描述的是处理器的细节. EBX=aall_ccbbh brand ID brand ID是 7..0. 00h 不支持 01h 0.18 μm Intel Celeron 02h 0.18 μm Intel Pentium III 03h 0.18 μm Intel Pentium III Xeon 03h 0.13 μm Intel Celeron 04h 0.13 μm Intel Pentium III 07h 0.13 μm Intel Celeron mobile 06h 0.13 μm Intel Pentium III mobile 0Ah 0.18 μm Intel Celeron 4 08h 0.18 μm Intel Pentium 4 09h 0.13 μm Intel Pentium 4 0Eh 0.18 μm Intel Pentium 4 Xeon 0Bh 0.18 μm Intel Pentium 4 Xeon MP 0Bh 0.13 μm Intel Pentium 4 Xeon 0Ch 0.13 μm Intel Pentium 4 Xeon MP 08h 0.13 μm Intel Celeron 4 mobile 0Eh 0.13 μm Intel Pentium 4 mobile (production) 0Fh 0.13 μm Intel Pentium 4 mobile (samples) CLFLUSH CLFLUSH (8-byte)在 bits 15..8. CPU count 逻辑处理器数量 bits 23..16. APIC ID 默认(固定的)APIC ID是bits 31..24. ECX=xxxx_xxxxh feature flags 描述 bits 31...11 保留 bit 10 (CID) context ID: L1数据缓存能被设置成适应或共享模式 bit 9 保留 bit 8 (TM2) 热量监控 2 bit 7 保留 bit 6 保留 bit 5 保留 bit 4 (DSCPL) CPL-qualified Debug Store bit 3 (MON) 监控器 bit 2 保留 bit 1 保留 bit 0 (SSE3) SSE3, MXCSR, CR4.OSXMMEXCPT, #XF, 如果FPU=1也支持 FISTTP EDX=xxxx_xxxxh 面貌标志 说明 bit 31 (PBE) Pending Break Event, STPCLK, FERR#, MISC_ENABLE MSR bit 30 (IA-64) IA-64 bit 29 (TM) THERM_INTERRUPT, THERM_STATUS, and MISC_ENABLE MSRsxAPIC thermal LVT entry bit 28 (HTT) Hyper-Threading Technology bit 27 (SS) selfsnoop bit 26 (SSE2) SSE2, MXCSR, CR4.OSXMMEXCPT, #XF bit 25 (SSE) SSE, MXCSR, CR4.OSXMMEXCPT, #XF bit 24 (FXSR) FXSAVE/FXRSTOR, CR4.OSFXSR bit 23 (MMX) MMX bit 22 (ACPI) THERM_CONTROL MSR bit 21 (DTES) Debug Trace and EMON Store MSRs bit 20 保留 bit 19 (CLFL)[1] [2] [3] [4] 下一页 没有相关教程
|
|
教程录入:mintao 责任编辑:mintao |
|
|
上一篇教程: 简单的在线升级的实现方法 下一篇教程: Sender 的應用:所有Edit共用一個過濾格式 |
|
|
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网] |
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
|
|
|
|
|
|
|
同类栏目 |
|
|
赞助链接 |
|
|
500 - 内部服务器错误。
|
|
|
|
|
|