韩剧1988免费观看全集_久久影视三级福利片_亚洲视频在线观看免费_在线观看欧美日韩_国产亚洲激情在线_亚洲精品美女久久久_欧美国产日韩一区二区在线观看_91在线观看免费高清完整版在线观看_日韩av免费看_国产又爽又黄的激情精品视频_琪琪亚洲精品午夜在线_欧美性猛xxx_不卡毛片在线看_国产亚洲日本欧美韩国_91国内在线视频_精品国产福利视频

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

研究心得------->CPU信息的獲得,比較所有方面的

研究心得------->CPU信息的獲得,比較所有方面的

更新時間:2022-06-05 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

最近到整理了一份CPU的信息,應(yīng)該算是比較全面的吧。
幾乎現(xiàn)在所有的X86 CPU都內(nèi)置了CPUID指令以辨別真?zhèn),一些CPU廠商例如AMD,VIA等還內(nèi)置了更加豐富的擴(kuò)展CPUID指令,用著更方便了。
下面我們利用Delphi來實現(xiàn)一個CPU檢測的軟件。
CPUID的調(diào)用方式如下:
asm
push eax
push ebx
push ecx
push edx
mov eax,X
//******************************************************
//cpuid指令,因為Delphi的匯編編譯器沒有內(nèi)置該指令,
//所以用該指令的機(jī)器語言代碼$0F,$A2來實現(xiàn)
//******************************************************
db $0F,$A2
pop edx
pop ecx
pop ebx
pop eax
end;
CPUID指令的參數(shù)就是EAX,mov eax,X這一句就是把X賦給EAX 。
返回的參數(shù)存儲在EAX,EBX,ECX,EDX之中。
我們可以寫一個函數(shù):
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的匯編編譯器沒有內(nèi)置該指令,
//所以用該指令的機(jī)器語言代碼$0F,$A2來實現(xiàn)
//******************************************************
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參數(shù)及返回值列表:
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和 面貌標(biāo)識
輸出 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描述的是處理器的細(xì)節(jié).
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 邏輯處理器數(shù)量 bits 23..16.
APIC ID 默認(rèn)(固定的)APIC ID是bits 31..24.
ECX=xxxx_xxxxh feature flags 描述
bits 31...11 保留
bit 10 (CID) context ID: L1數(shù)據(jù)緩存能被設(shè)置成適應(yīng)或共享模式
bit 9 保留
bit 8 (TM2) 熱量監(jiān)控 2
bit 7 保留
bit 6 保留
bit 5 保留
bit 4 (DSCPL) CPL-qualified Debug Store
bit 3 (MON) 監(jiān)控器
bit 2 保留
bit 1 保留
bit 0 (SSE3) SSE3, MXCSR, CR4.OSXMMEXCPT, #XF, 如果FPU=1也支持 FISTTP
EDX=xxxx_xxxxh 面貌標(biāo)志 說明
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) CLFLUSH
bit 18 (PSN) PSN (see standard EAX=l 0000_0003h), PSN_DISABLE MSR #1
bit 17 (PSE36) 4 MB PDE bits 16..13, CR4.PSE
bit 16 (PAT) PAT MSR, PDE/PTE.PAT
bit 15 (CMOV) CMOVcc, if FPU=1 then also FCMOVcc/F(U)COMI(P)
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) SYSENTER/SYSEXIT, SEP_* MSRs#2
bit 10 保留
bit 9 (APIC) APIC #3, #4
bit 8 (CX8) CMPXCHG8B #5
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
說明 說明
#1 如果PSN無效PSN 面貌標(biāo)志就是0.
#2 盡管Intel P6 處理器不支持 SEP,在這里仍然會虛報(真不知Intel是怎么想的).
#3 APIC無效那么APIC面貌標(biāo)志就是0.
#4 早期AMD K5 處理器 (SSA5)會假報支持 PGE.
#5 處理器確實支持 CMPXCHG8B但默認(rèn)卻是報告不支持. 其實這是Windows NT的一個Bug.
EAX= 0000_0002h

輸入 EAX=0000_0002h 得到處理器配置描述
輸出 EAX.15..8
EAX.23..16
EAX.31..24
EBX.0..7
EBX.15..8
EBX.23..16
EBX.31..24
ECX.0..7
ECX.15..8
ECX.23..16
ECX.31..24
EDX.0..7
EDX.15..8
EDX.23..16
EDX.31..24 配置描述
值 說明
00h null descriptor (=unused descriptor)
01h code TLB, 4K pages, 4 ways, 32 entries
02h code TLB, 4M pages, fully, 2 entries
03h data TLB, 4K pages, 4 ways, 64 entries
04h data TLB, 4M pages, 4 ways, 8 entries
06h code L1 cache, 8 KB, 4 ways, 32 byte lines
08h code L1 cache, 16 KB, 4 ways, 32 byte lines
0Ah data L1 cache, 8 KB, 2 ways, 32 byte lines
0Ch data L1 cache, 16 KB, 4 ways, 32 byte lines
10h data L1 cache, 16 KB, 4 ways, 32 byte lines (IA-64)
15h code L1 cache, 16 KB, 4 ways, 32 byte lines (IA-64)
1Ah code and data L2 cache, 96 KB, 6 ways, 64 byte lines (IA-64)
22h code and data L3 cache, 512 KB, 4 ways (!), 64 byte lines, dual-sectored
23h code and data L3 cache, 1024 KB, 8 ways, 64 byte lines, dual-sectored
25h code and data L3 cache, 2048 KB, 8 ways, 64 byte lines, dual-sectored
29h code and data L3 cache, 4096 KB, 8 ways, 64 byte lines, dual-sectored
39h code and data L2 cache, 128 KB, 4 ways, 64 byte lines, sectored
3Bh code and data L2 cache, 128 KB, 2 ways, 64 byte lines, sectored
3Ch code and data L2 cache, 256 KB, 4 ways, 64 byte lines, sectored
40h no integrated L2 cache (P6 core) or L3 cache (P4 core)
41h code and data L2 cache, 128 KB, 4 ways, 32 byte lines
42h code and data L2 cache, 256 KB, 4 ways, 32 byte lines
43h code and data L2 cache, 512 KB, 4 ways, 32 byte lines
44h code and data L2 cache, 1024 KB, 4 ways, 32 byte lines
45h code and data L2 cache, 2048 KB, 4 ways, 32 byte lines
50h code TLB, 4K/4M/2M pages, fully, 64 entries
51h code TLB, 4K/4M/2M pages, fully, 128 entries
52h code TLB, 4K/4M/2M pages, fully, 256 entries
5Bh data TLB, 4K/4M pages, fully, 64 entries
5Ch data TLB, 4K/4M pages, fully, 128 entries
5Dh data TLB, 4K/4M pages, fully, 256 entries
66h data L1 cache, 8 KB, 4 ways, 64 byte lines, sectored
67h data L1 cache, 16 KB, 4 ways, 64 byte lines, sectored
68h data L1 cache, 32 KB, 4 ways, 64 byte lines, sectored
70h trace L1 cache, 12 KμOPs, 8 ways
71h trace L1 cache, 16 KμOPs, 8 ways
72h trace L1 cache, 32 KμOPs, 8 ways
77h code L1 cache, 16 KB, 4 ways, 64 byte lines, sectored (IA-64)
79h code and data L2 cache, 128 KB, 8 ways, 64 byte lines, dual-sectored
7Ah code and data L2 cache, 256 KB, 8 ways, 64 byte lines, dual-sectored
7Bh code and data L2 cache, 512 KB, 8 ways, 64 byte lines, dual-sectored
7Ch code and data L2 cache, 1024 KB, 8 ways, 64 byte lines, dual-sectored
7Eh code and data L2 cache, 256 KB, 8 ways, 128 byte lines, sect. (IA-64)
81h code and data L2 cache, 128 KB, 8 ways, 32 byte lines
82h code and data L2 cache, 256 KB, 8 ways, 32 byte lines
83h code and data L2 cache, 512 KB, 8 ways, 32 byte lines
84h code and data L2 cache, 1024 KB, 8 ways, 32 byte lines
85h code and data L2 cache, 2048 KB, 8 ways, 32 byte lines
88h code and data L3 cache, 2048 KB, 4 ways, 64 byte lines (IA-64)
89h code and data L3 cache, 4096 KB, 4 ways, 64 byte lines (IA-64)
8Ah code and data L3 cache, 8192 KB, 4 ways, 64 byte lines (IA-64)
8Dh code and data L3 cache, 3096 KB, 12 ways, 128 byte lines (IA-64)
90h code TLB, 4K...256M pages, fully, 64 entries (IA-64)
96h data L1 TLB, 4K...256M pages, fully, 32 entries (IA-64)
9Bh data L2 TLB, 4K...256M pages, fully, 96 entries (IA-64)
值 描述
70h Cyrix specific: code and data TLB, 4K pages, 4 ways, 32 entries
74h Cyrix specific: ???
77h Cyrix specific: ???
80h Cyrix specific: code and data L1 cache, 16 KB, 4 ways, 16 byte lines
82h Cyrix specific: ???
84h Cyrix specific: ???
值 描述
others 保留
舉個例子有一塊 P6 EAX=0302_0101h
EBX=0000_0000h
ECX=0000_0000h
EDX=0604_0A43h 這塊P6處理器包含4K/M code/data TLB,8+8 KB code/data L1 cache 和混合 512 KB code/data L2 cache.
說明 說明
#1 在多處理器系統(tǒng)中要特別注意,應(yīng)該執(zhí)行.
EAX=0000_0003h
輸入 EAX=0000_0003h 得到處理器序列號 #1
輸出 EBX=xxxx_xxxxh 處理器序列號(只只是Transmeta Crusoe)
ECX=xxxx_xxxxh 處理器序列號
EDX=xxxx_xxxxh 處理器序列號
說明 說明
#1 僅當(dāng)PSN有效時.
EAX= 8000_0000h
輸入 EAX=8000_0000h 得到擴(kuò)展CPUID指令所支持的最大值和廠家的名稱字符串
輸出 EAX=xxxx_xxxxh 最大值
EBX-EDX-ECX 廠家的名稱字符串
AuthenticAMD AMD
保留 Cyrix
保留 Centaur
保留 Intel
TransmetaCPU Transmeta
保留 National Semiconductor
extended EAX= 8000_0001h
輸入 EAX=8000_0001h 得到處理器 family/model/stepping and features flags #0
輸出 EAX=0000_0xxxh 處理器 family/model/stepping
family Family是 bits 11..8.
5 AMD K5
Centaur C2
Transmeta Crusoe TM3x00 and TM5x00
6 AMD K6
VIA Cyrix III
7 AMD K7
model model 是bits 7..4.
AMD K5 1 5k86 (PR120 or 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)
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)
Centaur 8 C2
9 C3
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)
Transmeta 4 Crusoe TM3x00 and TM5x00
stepping stepping是bits 3..0.
Stepping的值是處理器的細(xì)節(jié).
EDX=xxxx_xxxxh feature flags description of indicated feature
bit 31 (3DNow!) 3DNow!
bit 30 (3DNow!+) extended 3DNow!
bit 29 (LM) AA-64, Long Mode(也就是AMD的X86-64指令集)
bit 28 保留
bits 27..25 保留
bit 24 (MMX+)
bit 24 (FXSR) Cyrix specific: extended MMX
AMD K7: FXSAVE/FXRSTOR, CR4.OSFXSR
bit 23 (MMX) MMX
bit 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
說明 內(nèi)容
#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
說明 內(nèi)容
#1 是一個字符數(shù)組,以0H結(jié)尾.
#2 WinChip是否支持決定于是否支持3D Now!.
EAX= 8000_0005h
輸入 EAX=8000_0005h 得到L1緩存容量和入口數(shù)量 #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緩存容量和入口數(shù)量
輸出 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 統(tǒng)一 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為結(jié)尾的字符串.
Transmeta EAX= 8086_0007h
輸入 EAX=8086_0007h 得到處理器信息
輸出 EAX xxxx_xxxxh 當(dāng)前時鐘頻率 (MHz)
EBX xxxx_xxxxh 當(dāng)前電壓 (mV)
ECX xxxx_xxxxh 當(dāng)前占用率 (0..100%)
EDX xxxx_xxxxh 當(dāng)前的延遲 (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
//******************************************************
//cpuid指令,因為Delphi的匯編編譯器沒有內(nèi)置該指令,
//所以用該指令的機(jī)器語言代碼$0F,$A2來實現(xiàn)
//******************************************************
db $0F,$A2
mov rEAX,EAX
mov rEBX,EBX
mov rECX,ECX
mov rEDX,EDX
pop EDX
pop ECX
pop EBX
pop EAX
end;
Result.EAX := rEAX;
Result.EBX := rEBX;
Result.ECX := rECX;
Result.EDX := rEDX;
end;

function GetCPUSpeed: Real;
const
timePeriod = 1000;
var
HighFreq, TestFreq, Count1, Count2: int64;
TimeStart : integer;
TimeStop : integer;
ElapsedTime : dword;
StartTicks : dword;
EndTicks : dword;
TotalTicks : dword;
begin
StartTicks := 0;
EndTicks := 0;
if QueryPerformanceFrequency(HighFreq) then
begin

TestFreq := HighFreq div 100;

QueryPerformanceCounter(Count1);
repeat
QueryPerformanceCounter(Count2);
until Count1 <> Count2;
asm
push ebx
xor eax,eax
xor ebx,ebx
xor ecx,ecx
xor edx,edx
db $0F,$A2 /// cpuid
db $0F,$31 /// rdtsc
mov StartTicks,eax
pop ebx
end;

repeat
QueryPerformanceCounter(Count1);
until Count1 - Count2 >= TestFreq;

asm
push ebx
xor eax,eax
xor ebx,ebx
xor ecx,ecx
xor edx,edx
db $0F,$A2 /// cpuid
db $0F,$31 /// rdtsc
mov EndTicks,eax
pop ebx
end;

ElapsedTime := MulDiv(Count1 - Count2, 1000000, HighFreq);
end
else
begin
timeBeginPeriod(1);
TimeStart := timeGetTime;

repeat
TimeStop := timeGetTime;
until TimeStop <> TimeStart;

asm
push ebx
xor eax,eax
xor ebx,ebx
xor ecx,ecx
xor edx,edx
db $0F,$A2 /// cpuid
db $0F,$31 /// rdtsc
mov StartTicks,eax
pop ebx
end;

repeat
TimeStart := timeGetTime;
until TimeStart - TimeStop >= timePeriod;

asm
push ebx
xor eax,eax
xor ebx,ebx
xor ecx,ecx
xor edx,edx
db $0F,$A2 /// cpuid
db $0F,$31 /// rdtsc
mov EndTicks,eax
pop ebx
end;
timeEndPeriod(1);

ElapsedTime := (TimeStart - TimeStop) * 1000;
end;
TotalTicks := EndTicks - StartTicks;
result := TotalTicks / ElapsedTime;
end;

function getCPUInfo: TCPUInfo;
type
TRegChar = array[0..3] of char;
var
lvCPUID : TCPUIDResult;
I : Integer;
begin
lvCPUID := CPUID(0);
Result.Vendor := TRegChar(lvCPUID.EBX) + TRegChar(lvCPUID.EDX) +
TRegChar(lvCPUID.ECX);
lvCPUID := CPUID(1);
Result.Frequency := GetCPUSpeed;
Result.Family := (lvCPUID.EAX and $F00) shr 8;
Result.Model := (lvCPUID.EAX and $78) shr 4;
Result.Stepping := (lvCPUID.EAX and $F);
Result.EFamily := (lvCPUID.EAX and $7800000) shr 20;
Result.EModel := (lvCPUID.EAX and $78000) shr 16;
Result.EStepping := (lvCPUID.EAX and $F);
Result.APIC := (lvCPUID.EBX and $1FE00000) shr 23;
Result.Brand := lvCPUID.EBX and $7F;
Result.MMX := (lvCPUID.EDX and $800000) = $800000;
Result.SSE := (lvCPUID.EDX and $2000000) = $2000000;
Result.SSE2 := (lvCPUID.EDX and $4000000) = $4000000;
Result.IA64 := (lvCPUID.EDX and $40000000) = $40000000;
lvCPUID := CPUID($80000001);
Result.MMXPlus := (lvCPUID.EDX and $800000) = $800000;
Result.AMD3DNow := (lvCPUID.EDX and $10000000) = $10000000;
Result.AMD3DNowPlus := (lvCPUID.EDX and $8000000) = $8000000;
Result.X86_64 := (lvCPUID.EDX and $40000000) = $40000000;
if (Result.Vendor = 'GenuineIntel') and ((Result.Family <> 15) or
(Result.EFamily <> 0)) then
Result.Name := Result.Vendor + ' Processor'
else
begin
Result.Name := ';
for i := 2 to 4 do
begin
lvCPUID := CPUID($80000000 + i);
Result.Name := Result.Name +
TRegChar(lvCPUID.EAX) +
TRegChar(lvCPUID.EBX) +
TRegChar(lvCPUID.ECX) +
TRegChar(lvCPUID.EDX);
end;
Result.Name := Trim(Result.Name);
end;
end;

procedure TForm1.FormShow(Sender: TObject);

procedure WriteSupport(Edit: TEdit; Sup: Boolean);
begin
if Sup then
edit.Text := '支持'
else
edit.Text := '不支持';
end;
var
CPU : TCPUInfo;
begin
CPU := getCPUInfo;
EditCPUName.Text := CPU.Name;
EditVendor.Text := CPU.Vendor;
EditF.Text := Inttostr(CPU.Family);
EditM.Text := Inttostr(CPU.Model);
EditStep.Text := Inttostr(CPU.Stepping);
EditFE.Text := Inttostr(CPU.EFamily);
EditME.Text := Inttostr(CPU.EModel);
EditStepE.Text := Inttostr(CPU.EStepping);
Edit33.Text := Inttostr(CPU.APIC);
EditBrand.Text := Inttostr(CPU.Brand);
EditSpeed.Text := FormatFloat('###.##', CPU.Frequency);
WriteSupport(EditMMX, CPU.MMX);
WriteSupport(EditSSE, CPU.SSE);
WriteSupport(EditSSE2, CPU.SSE2);
WriteSupport(EditIA64, CPU.IA64);
WriteSupport(EditMMXp, CPU.MMXPlus);
WriteSupport(Edit3DNow, CPU.AMD3DNow);
WriteSupport(Edit3DNowp, CPU.AMD3DNowPlus);
WriteSupport(EditX86_64, CPU.X86_64);
end;

一個真正的CPU檢測軟件還要能夠檢測到緩存信息等等。大家可以參考上面表格所示的參數(shù),在這些代碼中作擴(kuò)展。

CPU的資料好難找啊。Intel和AMD得還好一些,其他公司的簡直是大海撈針。我盡力了,只能整理到這些了。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
午夜啪啪福利视频| 韩国女主播成人在线观看| www.激情.com| 内射国产内射夫妻免费频道| 波多野结衣在线观看视频| 成人免费播放器| 色综合久久99| 国内成人精品一区| 久草福利资源在线视频| 国产小视频在线观看免费| 国产在线资源一区| 中文一区一区三区高中清不卡免费| 日韩成人免费在线观看| 丝袜美腿精品国产二区| 91免费视频网址| 欧美一区二区三区久久久| 欧类av怡春院| 高清毛片aaaaaaaa**| 蜜桃精品久久久久久久免费影院| 国偷自产av一区二区三区| 日韩av色在线| 国产精品91久久久| 亚洲国产中文字幕在线| 亚洲性人人天天夜夜摸| 亚洲精品一区二区三区婷婷月| a级影片在线| 国产99久久久国产精品潘金| 濑亚美莉vs黑人在线观看| 欧美丰满片xxx777| 成人在线观看免费网站| 91麻豆国产在线| 色三级在线观看| 综合视频免费看| 亚洲五码中文字幕| 欧美日韩成人一区| 国产一区二区三区在线免费| 国产主播在线看| 男女午夜刺激视频| 成人免费xxxxx在线观看| 亚洲人视频在线观看| 久草视频免费播放| 日韩精品在线观| 国产精品精品软件视频| 成人自拍小视频| 欧美区视频在线观看| 欧美三级美国一级| 中文字幕乱码一区| 在线看小视频| 182在线播放| 欧美日韩一级片在线观看| 中文字幕日韩精品在线观看| 美女亚洲一区| 无码人妻熟妇av又粗又大| 九九热精品视频在线| 亚洲一区二区三区四区精品| 亚洲欧美日韩激情| 精品一区二区三区五区六区七区| 99r国产精品| 久久久久久久久久久视频| 亚洲裸色大胆大尺寸艺术写真| 国产a精品视频| 午夜影院黄色片| 伊人色综合久久天天| 91亚洲国产成人精品一区二区三| 国产黄色高清在线| 久久久久亚洲av片无码下载蜜桃| 成人黄色在线电影| 天天射综合影视| 欧美高清一级片在线观看| 精品黄色免费中文电影在线播放| 精品人妻少妇嫩草av无码| 国产精品久久久久久久av福利| 色噜噜狠狠色综合网图区| 国产成人免费9x9x人网站视频| 国产免费一区二区三区最新不卡| 日韩无码精品一区二区| 久久久久亚洲综合| 欧美性猛交xxxx免费看手交| 国产视频一区三区| 在线视频一区二区免费| 国产精品美女视频网站| 国色天香2019中文字幕在线观看| 亚洲成人1区2区| 国产日韩欧美中文| 精品久久国产97色综合| www.日本在线播放| 日韩激情电影免费看| 精精国产xxxx视频在线动漫| 久久资源中文字幕| 欧美性www| 视频免费一区二区| 琪琪久久久久日韩精品| 800av免费在线观看| 午夜av不卡| 一区二区三区在线播放| 成人性教育av免费网址| 久久综合视频网| 情趣网站视频在线观看| 亚洲成av人片在线观看无码| 激情内射人妻1区2区3区| 天天干天天色综合| 欧美国产精品va在线观看| 国产午夜精品久久| 色先锋av资源| 中文字幕一区二区三区乱码| 国产日韩欧美一区二区三区四区| www.亚洲成人网| 黄色电影免费在线观看| 国产成人av免费观看| 国产精品视频流白浆免费视频| 一区二区三区在线高清| 欧美黄色成人| 色诱色偷偷久久综合| 天美传媒免费在线观看| 日韩精品在线免费观看| 国产aⅴ超薄肉色丝袜交足| 丁香花在线电影小说观看| 伊人久久精品视频| 欧美视频精品在线观看| 青青操视频在线观看| 欧美69精品久久久久久不卡| 日韩理论片中文av| 国产妇女馒头高清泬20p多| 久久国产乱子伦免费精品| 国内精品伊人久久| 国产美女视频网站| 色视频在线观看| 国产成人精品午夜| 欧洲精品一区二区三区久久| 自拍小视频在线观看| 亚洲开心激情网| 欧美男同性恋视频网站| 日本免费在线一区| 国产在线视频三区| 91精品国产99久久久久久| 99久久国产综合精品五月天喷水| 96国产粉嫩美女| 国内精品久久久久久久影视麻豆| 欧美在线视频第一页| 黄色一级视频在线播放| 日韩欧美国产不卡| 无码人妻精品一区二区三区99不卡| 国产午夜性春猛交ⅹxxx| 国语精品一区| 91在线观看网站| 国产综合在线播放| 亚洲精品综合网| 欧美裸体男粗大视频在线观看| 亚洲一区二区三区四区| 成人午夜一级| 亚洲精品四区| 亚洲精品一卡二卡三卡四卡| 男人添女荫道口女人有什么感觉| 国产高清自拍视频| 蜜臀国产一区| 97久久超碰国产精品电影| 欧美亚洲精品一区| h网站在线免费观看| 蜜桃av色综合| 毛片在线网址播放| 精品一区二区三区在线观看| 国产青草视频在线观看| 中国视频免男男gay| 国产一级在线免费观看| 国产日韩欧美高清在线| 日韩欧美中文字幕不卡| 国产一区二区在线视频你懂的| 天天操天天干天天插| 日韩精品在线影院| 国产盗摄在线观看| 欧美精品精品精品精品免费| 91超碰成人| ass大特写| 精品久久香蕉国产线看观看亚洲| gogogogo高清视频在线| 欧美性xxxx禁忌| 中文字幕视频在线播放| 在线欧美一级视频| wwwxxxx国产| 在线中文资源天堂| 国产精品久久国产精麻豆96堂| 日韩午夜在线影院| 欧美性猛交xxxx黑人| 在线欧美三级| 久久视频在线观看| 激情综合网站| 啪一啪鲁一鲁2019在线视频| 在线成人私人影院| 欧美国产日韩亚洲一区| 久久99久久| 亚洲AV无码精品自拍| 天海翼在线观看视频| 国产男女无遮挡| 日韩一级视频| 亚洲综合自拍网| 国产影视一区二区| 北条麻妃在线一区二区免费播放| 欧美亚洲免费电影| 欧美日韩大尺度| 午夜av免费观看| 亚洲在线色站| 四虎影视av| 欧美一区二区视频97| 在线观看欧美黄色| 久久久久久av无码免费网站| 国产精品视频一区在线观看| 国产精品加勒比| 91精品一区二区| 国产一区二区久久久久| 久草在线免费资源| 麻豆av电影在线观看| 免费午夜一级| 免费观看日韩av| 91老司机精品视频| 国产精品久久91| 粗大的内捧猛烈进出视频| 热久久这里只有精品| 影音先锋在线中文字幕| 人人影院免费大片| 一区二区三区视频免费| 青青青免费在线视频| 中文字幕乱在线伦视频中文字幕乱码在线| 亚洲欧美综合精品久久成人| 久久久久一区二区三区| 国产在线日韩精品| 樱花视频在线免费观看| 中文字幕+乱码+中文乱码www| 日韩亚洲视频在线| 国产高清久久久| 精品国产av色一区二区深夜久久| 久久这里只有精品99| 免费黄色片在线观看| 欧美日韩生活片| 青青草精品视频在线| 激情综合五月| 亚欧美一区二区三区| 极品束缚调教一区二区网站| 欧美一级生活片| 国产精品电影一区二区三区| 日韩亚洲一区在线| 国产在线播放一区三区四| 性高潮久久久久久久| 久久久精品免费观看| 日本一区二区视频在线观看| 日韩视频欧美视频| 亚洲啪啪aⅴ一区二区三区9色| 精品视频在线看| 日本亚洲天堂| 日本午夜在线观看| 欧美视频在线第一页| 99国产精品久久一区二区三区| 久久久精品视频在线观看| 国内精品视频在线播放| 美女在线观看www| 免费看av成人| 国产女大学生av| 久久视频在线直播| 一级特级黄色片| sese久久| 91精品国产色综合久久不卡蜜臀| 欧美久久一级| 欧洲一区二区在线观看| 国产精品久久久亚洲一区| 在线看的网站你懂| 一区二区三区在线观看免费视频| 国产精品333| 福利视频导航一区| 91在线丨porny丨国产| 国产黄大片在线观看| 国产成人aa在线观看网站站| 免费大片黄在线观看视频网站| 日本精品一区在线| 色婷婷国产精品久久包臀| 久久精品视频免费观看| 免费观看国产视频| 日本一区视频在线观看| 99riav国产精品视频| 在线播放成人| 亚洲婷婷丁香| 久久福利一区二区| 久久男人天堂| 国产免费高清| 日韩福利视频网| 99精品久久| bbw在线视频| 日本高清视色| 三级国产三级在线| 九九热在线观看视频| 国产精品视频h| 国产淫片免费看| 日本老太婆做爰视频| 亚洲黄页视频免费观看| 亚洲美女黄色片| 国产麻花豆剧传媒精品mv在线| 国产精品久久久久久av下载红粉| 日韩精品视频免费| 日本中文字幕视频一区| 正在播放欧美视频| freehdxxxx护士| 日本一区二区在线视频观看| 自拍偷拍在线视频| 久久久久国产精品一区| 最新精品视频在线| 主播大秀视频在线观看一区二区| 国产大片精品免费永久看nba| 麻豆91蜜桃| www.av91| 日韩av免费网站| 黑丝一区二区| 亚洲热线99精品视频| 色婷婷综合久久久中文一区二区| 无套白嫩进入乌克兰美女| 黄页在线观看| 国产一区二区h| 欧美欧美黄在线二区| 精品国产一区二区三区av片| 国产免费一区二区| 思思久久精品视频| 色操视频在线| 欧美一区亚洲| 91久久青草| 日韩在线播放视频| 91尤物国产福利在线观看| 久久久久久午夜| 国产精品久久久一区| 一级久久久久久| 国产乱人伦偷精品视频免下载| 国产+成+人+亚洲欧洲|