转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
研究心得-------CPU信息的获得,比较全面的。         ★★★★

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

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2324 更新时间:2009/4/23 18:38:05
it 22 (MMX+)  AMD specific: MMX-SSE and SSE-MEM
   bit 21  保留
   bit 20 (NX)  EFER.NXE, P?E.NX, #PF(1xxxx)
   bit 19 (MP)  MP-capable #3
   bit 18  保留
   bit 17 (PSE36)  4 MB PDE bits 16..13, CR4.PSE
   bit 16 (FCMOV)
bit 16 (PAT)  FCMOVcc/F(U)COMI(P) (implies FPU=1)
AMD K7: PAT MSR, PDE/PTE.PAT
   bit 15 (CMOV)  CMOVcc
   bit 14 (MCA)  MCG_*/MCn_* MSRs, CR4.MCE, #MC
   bit 13 (PGE)  PDE/PTE.G, CR4.PGE
   bit 12 (MTRR)  MTRR* MSRs
   bit 11 (SEP)  SYSCALL/SYSRET, EFER/STAR MSRs #1
   bit 10  保留 #1
   bit 9 (APIC)  APIC #2
   bit 8 (CX8)  CMPXCHG8B
   bit 7 (MCE)  MCAR/MCTR MSRs, CR4.MCE, #MC
   bit 6 (PAE)  64bit PDPTE/PDE/PTEs, CR4.PAE
   bit 5 (MSR)  MSRs, RDMSR/WRMSR
   bit 4 (TSC)  TSC, RDTSC, CR4.TSD (doesn''''t imply MSR=1)
   bit 3 (PSE)  PDE.PS, PDE/PTE.res, CR4.PSE, #PF(1xxxb)
   bit 2 (DE)  CR4.DE, DR7.RW=10b, #UD on MOV from/to DR4/5
   bit 1 (VME)  CR4.VME/PVI, EFLAGS.VIP/VIF, TSS32.IRB
   bit 0 (FPU)  FPU
说明  内容
#0  Intel 处理器不支持; 返回值EAX, EBX, ECX, 和 EDX都是0.
#1  AMD K6 处理器, model 6, uses 使用第十位指示SEP.
#2  如果APIC是无效的,那么APIC读到的是0.
#3  AMD CPUID=0662h的K7 处理器如果是具有多处理器能力的版本可能也报告时0
EAX= 8000_0002h, 8000_0003h, and 8000_0004h
输入  EAX=8000_0002h  得到处理器名称的第一部分
 EAX=8000_0003h  得到处理器名称的第二部分
 EAX=8000_0004h  得到处理器名称的第三部分
输出  EAX
EBX
ECX
EDX  处理器名称字符串#1
   AMD K5  AMD-K5(tm) 处理器
   AMD K6  AMD-K6tm w/ multimedia extensions
   AMD K6-2  AMD-K6(tm) 3D 处理器
AMD-K6(tm)-2 处理器
   AMD K6-III  AMD-K6(tm) 3D+ 处理器
AMD-K6(tm)-III 处理器
   AMD K6-2+  AMD-K6(tm)-III 处理器 (?)
   AMD K6-III+  AMD-K6(tm)-III 处理器 (?)
   AMD K7  AMD-K7(tm) 处理器 (model 1)
AMD Athlon(tm) 处理器 (model 2)
AMD Athlon(tm) 处理器 (models 3/4, 6/7, and 8 -- programmable)
   Centaur C2 #2  IDT WinChip 2
IDT WinChip 2-3D
   VIA Cyrix III  CYRIX III(tm) (?)
VIA Samuel (?)
VIA Ezra (?)
   Intel P4  Intel(R) Pentium(R) 4 CPU xxxxMHz (right-justified, leading whitespaces)顺便说一句,Intel只有P4以上才支持。
   Transmeta  Transmeta(tm) Crusoe(tm) 处理器 TMxxxx
说明  内容
#1  是一个字符数组,以0H结尾.
#2  WinChip是否支持决定于是否支持3D Now!.
EAX= 8000_0005h
输入  EAX=8000_0005h  得到L1缓存容量和入口数量 #1
输出  EAX  4/2 MB L1 入口信息
   EAX的位  描述
   31..24  data TLB associativity (FFh=full)
   23..16  data TLB entries
   15..8  code TLB associativity (FFh=full)
   7..0  code TLB entries
 EBX  4 KB L1入口信息
   bits  description
   31..24  data TLB associativity (FFh=full)
   23..16  data TLB entries
   15..8  code TLB associativity (FFh=full)
   7..0  code TLB entries
 ECX  data L1 信息描述
   bits  description
   31..24  data L1 cache size in KBs
   23..16  data L1 cache associativity (FFh=full)
   15..8  data L1 cache lines per tag
   7..0  data L1 cache line size in bytes
 EDX  code L1信息描述
   bits  description
   31..24  code L1 cache size in KBs
   23..16  code L1 cache associativity (FFh=full)
   15..8  code L1 cache lines per tag
   7..0  code L1 cache line size in bytes
说明  description
#1  Cyrix 处理器使用0000_0002h做类似的描述
EAX= 8000_0006h
输入  EAX=8000_0006h  得到L1缓存容量和入口数量
输出  EAX  4/2 MB L2 入口信息 #1
   位  描述
   31..28  data TLB associativity #2
   27..16  data TLB entries
   15..12  code TLB associativity #2
   11..0  code TLB entries
 EBX  4 KB L2 入口信息
   位  描述
   31..28  data TLB associativity #1
   27..16  data TLB entries
   15..12  code TLB associativity #1
   11..0  code TLB entries
 ECX  统一 L2 cache 信息 #32
   bits  description
   31..16 #4  unified L2 cache size in KBs #3
   15..12 #4  unified L2 cache associativity #1
   11..8 #4  unified L2 cache lines per tag
   7..0  unified L2 cache line size in bytes
说明  描述
#1  0000b=L2 off, 0001b=direct mapped, 0010b=2-way, 0100b=4-way, 0110b=8-way, 1000b=16-way, 1111b=full
#2  AMD K7 处理器 L2 cache 必须依赖于此信息.
#3  AMD PUID=0630h 的K7 处理器(Duron) 具有 64 KB二级缓存,但是却报告只有1KB.
#4  VIA Cyrix III CPUID=0670..068Fh (C5B/C5C)的处理器错误报告bits 31..24, 23..16, and 15..8.
EAX 8000_0007h
输入  EAX=8000_0007h  电源管理信息(EPM)
输出  EDX  EPM flags
   位  说明
   31..3  保留
   2 (VID)  voltage ID control supported
   1 (FID)  frequency ID control supported
   0  temperature sensing diode supported
EAX= 8000_0008h
输入  EAX=8000_0008h  得到地址大小信息
输出  EAX  地址大小信息
   位  说明
   31..16  保留
   15..8  virtual address bits
   7..0  physical address bits
Transmeta EAX= 8086_0000h
输入  EAX=8086_0000h  得到CPUID的最大支持和厂商字符串
输出  EAX=xxxx_xxxxh  最大支持 EAX=l
 EBX-EDX-ECX  厂商字符串
   TransmetaCPU  Transmeta processor
Transmeta EAX= 8086_0001h
输入  EAX=8086_0001h  得到处理器信息
输出  EAX=0000_0xxxh  处理器信息
   family  The family is encoded in bits 11..8.
       5  Transmeta Crusoe TM3x00 and TM5x00
   model  The model is encoded in bits 7..4.
     Transmeta  4  Crusoe TM3x00 and TM5x00
   stepping  The stepping is encoded in bits 3..0.
     The stepping values are processor-specific.
 EBX=aabb_ccddh  hardware revision (a.b-c.d), if 2000_0000h: see EAX=l 8086_0002h register EAX instead
 ECX=xxxx_xxxxh  nominal core clock frequency (MHz)
 EDX=xxxx_xxxxh  feature flags  description of indicated feature
   bits 31..4  reserved
   bit 3 (LRTI)  LongRun Table Interface
   bit 2 (???)  unknown
   bit 1 (LR)  LongRun
   bit 0 (BAD)  recovery CMS active (due to a failed upgrade)
Transmeta EAX= 8086_0002h
输入  EAX=8086_0002h  得到处理器信息
输出  EAX  xxxx_xxxxh  reserved or hardware revision (xxxxxxxxh)
see EAX=l 8086_0001h register EBX for details
 EBX  aabb_ccddh  software revision, part 1/2 (a.b.c-d-x)
 ECX  xxxx_xxxxh  software revision, part 2/2 (a.b.c-d-x)
Transmeta EAX=8086_0003h, 8086_0004h, 8086_0005h, and 8086_0006h
输入  EAX=8086_0003h  得到信息字符串第一部分
 EAX=8086_0004h  得到信息字符串第一部分
 EAX=8086_0005h  得到信息字符串第一部分
 EAX=8086_0006h  得到信息字符串第一部分
输出  EAX-EBX-ECX-EDX  信息字符串 #1
   Transmeta  20000805 23:30 official release 4.1.4#2 (例子)
说明  说明
#1  以00h为结尾的字符串.
Transmeta EAX= 8086_0007h
输入  EAX=8086_0007h  得到处理器信息
输出  EAX  xxxx_xxxxh  当前时钟频率 (MHz)
 EBX  xxxx_xxxxh  当前电压 (mV)
 ECX  xxxx_xxxxh  当前占用率 (0..100%)
 EDX  xxxx_xxxxh  当前的延迟 (fs)
神秘的功能 EAX= 8FFF_FFFEh
输入  EAX=8FFF_FFFEh  未知 #1
输出  EAX  0049_4544h  DEI (according to one source: Divide Et Impera = Divide And Rule)
 EBX  0000_0000h  保留
 ECX  0000_0000h  保留
 EDX  0000_0000h  保留
说明  说明
#1  这个方法仅仅被 AMD K6 支持.
神秘的功能EAX= 8FFF_FFFFh
输入  EAX=8FFF_FFFFh  未知 #1
输出  EAX
EBX
ECX
EDX  string  NexGenerationAMD
说明  说明
#1  这个方法只被he AMD K6支持.
其他
输入  EAX=xxxx_xxxxh  其他
输出  EAX=xxxx_xxxxh
EBX=xxxx_xxxxh
ECX=xxxx_xxxxh
EDX=xxxx_xxxxh  不明确
代码如下:
type
 TCPUIDResult = packed record
   EAX: DWord;
   EBX: DWord;
   ECX: DWord;
   EDX: DWord;
 end;
 TCPUInfo =packed record
   Name: string[48];
   Brand: Word;
   APIC: DWORD;
   Vendor: string[12];
   Frequency: Real;
   Family: integer;
   Model: integer;
   Stepping: integer;
   EFamily: integer;
   EModel: integer;
   EStepping: integer;
   MMX: Boolean;
   MMXPlus: Boolean;
   AMD3DNow: Boolean;
   AMD3DNowPlus: Boolean;
   SSE: Boolean;
   SSE2: Boolean;
   IA64: Boolean;
   X86_64: Boolean;
 end;

function CPUID(EAX: DWord): TCPUIDResult;
var
 rEAX, rEBX, rECX, rEDX: DWord;
begin
 asm
   push EAX
   push EBX
   push ECX
   push EDX
   mov EAX,EAX
  &nbs

上一页  [1] [2] [3] [4]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台