1
0
Fork 0
mirror of https://github.com/anrieff/libcpuid synced 2024-12-16 16:35:45 +00:00

libcpuid: better support for Core 2 processors: Wolfdale, Penryn, Merom - more robust detection code

cpuid_tool: the --load flag didn't have any effect with queries; fixed
tests: added a trivial testing framework, added 7 tests

git-svn-id: https://svn.code.sf.net/p/libcpuid/code/HEAD/libcpuid@28 3b4be424-7ac5-41d7-8526-f4ddcb85d872
This commit is contained in:
Veselin Georgiev 2008-11-21 16:45:46 +00:00
parent 931dc5bb9a
commit 7774c94046
5 changed files with 818 additions and 15 deletions

View file

@ -551,7 +551,7 @@ int main(int argc, char** argv)
/* OK, process all queries. */ /* OK, process all queries. */
if ((!need_report || !only_clock_queries) && num_requests > 0) { if ((!need_report || !only_clock_queries) && num_requests > 0) {
/* Identify the CPU. Make it do cpuid_get_raw_data() itself */ /* Identify the CPU. Make it do cpuid_get_raw_data() itself */
if (check_need_raw_data() && cpu_identify(NULL, &data) < 0) { if (check_need_raw_data() && cpu_identify(&raw, &data) < 0) {
if (!need_quiet) if (!need_quiet)
fprintf(stderr, fprintf(stderr,
"Error identifying the CPU: %s\n", "Error identifying the CPU: %s\n",

View file

@ -43,12 +43,19 @@ enum _intel_code_t {
MOBILE_CELERON, MOBILE_CELERON,
NOT_CELERON, NOT_CELERON,
CORE_SOLO, CORE_SOLO,
MOBILE_CORE,
CORE_DUO, CORE_DUO,
CORE_DUO_512K, CORE_DUO_512K,
CORE_DUO_1024K, CORE_DUO_1024K,
ALLENDALE, ALLENDALE,
WOLFDALE, WOLFDALE_2M,
PENRYN, WOLFDALE_3M,
WOLFDALE_6M,
MEROM_2M,
MEROM_4M,
PENRYN_3M,
PENRYN_6M,
PENRYN_QUAD,
QUAD_CORE, QUAD_CORE,
DUAL_CORE_HT, DUAL_CORE_HT,
QUAD_CORE_HT, QUAD_CORE_HT,
@ -148,18 +155,28 @@ const struct match_entry_t cpudb_intel[] = {
{ 6, 15, -1, -1, -1, MORE_THAN_QUADCORE, "More than quad-core" }, { 6, 15, -1, -1, -1, MORE_THAN_QUADCORE, "More than quad-core" },
{ 6, 15, -1, -1, -1, ALLENDALE , "Allendale (Core 2 Duo)" }, { 6, 15, -1, -1, -1, ALLENDALE , "Allendale (Core 2 Duo)" },
{ 6, 15, -1, -1, -1, XEON , "Xeon (Clovertown) Quad" }, { 6, 15, -1, -1, -1, XEON , "Xeon (Clovertown) Quad" },
{ 6, 15, -1, -1, -1, MOBILE_CORE , "Merom (Core 2 Duo)" },
{ 6, 15, -1, -1, -1, MEROM_2M , "Merom (Core 2 Duo) 2048K" },
{ 6, 15, -1, -1, -1, MEROM_4M , "Merom (Core 2 Duo) 4192K" },
{ 6, 6, -1, -1, 22, CELERON , "Conroe-L (Celeron)" }, { 6, 6, -1, -1, 22, CELERON , "Conroe-L (Celeron)" },
{ 6, -1, -1, -1, 22, NO_CODE , "Unknown Core ?" }, { 6, 6, -1, -1, 22, NO_CODE , "Unknown Core ?" },
{ 6, -1, -1, -1, 23, NO_CODE , "Unknown Core ?" }, { 6, 7, -1, -1, 23, NO_CODE , "Unknown Core ?" },
{ 6, -1, -1, -1, 22, MORE_THAN_QUADCORE, "More than quad-core" }, { 6, 6, -1, -1, 22, MORE_THAN_QUADCORE, "More than quad-core" },
{ 6, -1, -1, -1, 23, MORE_THAN_QUADCORE, "More than quad-core" }, { 6, 7, -1, -1, 23, MORE_THAN_QUADCORE, "More than quad-core" },
{ 6, -1, -1, -1, 23, WOLFDALE , "Wolfdale (Core 2 Duo)" }, { 6, 7, -1, -1, 23, CORE_SOLO , "Unknown Core 45nm" },
{ 6, -1, -1, -1, 23, PENRYN , "Penryn (Core 2 Duo)" }, { 6, 7, -1, -1, 23, CORE_DUO , "Unknown Core 45nm" },
{ 6, -1, -1, -1, 23, QUAD_CORE , "Yorkfield (Core 2 Quad)" }, { 6, 7, -1, -1, 23, WOLFDALE_2M , "Wolfdale (Core 2 Duo) 2M" },
{ 6, 7, -1, -1, 23, WOLFDALE_3M , "Wolfdale (Core 2 Duo) 3M" },
{ 6, 7, -1, -1, 23, WOLFDALE_6M , "Wolfdale (Core 2 Duo) 6M" },
{ 6, 7, -1, -1, 23, MOBILE_CORE , "Penryn (Core 2 Duo)" },
{ 6, 7, -1, -1, 23, PENRYN_3M , "Penryn (Core 2 Duo) 3M" },
{ 6, 7, -1, -1, 23, PENRYN_6M , "Penryn (Core 2 Duo) 6M" },
{ 6, 7, -1, -1, 23, QUAD_CORE , "Yorkfield (Core 2 Quad)" },
{ 6, 10, -1, -1, 26, NO_CODE , "Intel Core i7" }, { 6, 10, -1, -1, 26, NO_CODE , "Intel Core i7" },
{ 6, 10, -1, -1, 26, QUAD_CORE_HT , "Bloomfield (Core i7)" }, { 6, 10, -1, -1, 26, QUAD_CORE_HT , "Bloomfield (Core i7)" },
@ -442,13 +459,12 @@ static void decode_intel_codename(struct cpu_raw_data_t* raw, struct cpu_id_t* d
{ {
intel_code_t code = NO_CODE; intel_code_t code = NO_CODE;
int i; int i;
int L2 = data->l2_cache;
const char* bs = data->brand_str; const char* bs = data->brand_str;
const struct { int cache_size; intel_code_t code; } match_cache[] = { const struct { int cache_size; intel_code_t code; } match_cache[] = {
{ 512, CORE_DUO_512K }, { 512, CORE_DUO_512K },
{ 1024, CORE_DUO_1024K }, { 1024, CORE_DUO_1024K },
{ 2048, ALLENDALE }, { 2048, ALLENDALE },
{ 3072, PENRYN },
{ 6144, WOLFDALE },
}; };
const struct { intel_code_t c; const char *search; } matchtable[] = { const struct { intel_code_t c; const char *search; } matchtable[] = {
{ XEONMP, "Xeon MP" }, { XEONMP, "Xeon MP" },
@ -458,6 +474,8 @@ static void decode_intel_codename(struct cpu_raw_data_t* raw, struct cpu_id_t* d
{ MOBILE_PENTIUM_M, "Pentium(R) M" }, { MOBILE_PENTIUM_M, "Pentium(R) M" },
{ PENTIUM_D, "Pentium(R) D" }, { PENTIUM_D, "Pentium(R) D" },
{ PENTIUM, "Pentium" }, { PENTIUM, "Pentium" },
{ MOBILE_CORE, "Intel(R) Core(TM)2 CPU T" },
{ MOBILE_CORE, "Genuine Intel(R) CPU T" },
{ CORE_SOLO, "Genuine Intel(R) CPU" }, { CORE_SOLO, "Genuine Intel(R) CPU" },
{ CORE_SOLO, "Intel(R) Core(TM)2" }, { CORE_SOLO, "Intel(R) Core(TM)2" },
{ ATOM_DIAMONDVILLE, "Atom(TM) CPU 2" }, { ATOM_DIAMONDVILLE, "Atom(TM) CPU 2" },
@ -505,14 +523,33 @@ static void decode_intel_codename(struct cpu_raw_data_t* raw, struct cpu_id_t* d
} }
} }
if (code == CORE_DUO && data->l2_cache != 4096) { if (code == CORE_DUO && L2 != 4096) {
for (i = 0; i < COUNT_OF(match_cache); i++) { for (i = 0; i < COUNT_OF(match_cache); i++) {
if (match_cache[i].cache_size == data->l2_cache) { if (match_cache[i].cache_size == L2) {
code = match_cache[i].code; code = match_cache[i].code;
break; break;
} }
} }
} }
if (code == CORE_DUO && data->ext_model >= 23) {
if (L2 == 3072 || L2 == 6144)
code = (L2 == 3072) ? WOLFDALE_3M : WOLFDALE_6M;
}
if (code == PENTIUM_D && data->ext_model >= 23) {
code = WOLFDALE_2M;
}
if (code == MOBILE_CORE) {
if (data->ext_model < 23) {
if (L2 == 2048 || L2 == 4096)
code = (L2 == 2048) ? MEROM_2M : MEROM_4M;
} else {
if (data->num_cores == 2) {
if (L2 == 3072 || L2 == 6144)
code = (L2 == 3072) ? PENRYN_3M : PENRYN_6M;
} else
code = PENRYN_QUAD;
}
}
match_cpu_codename(cpudb_intel, COUNT_OF(cpudb_intel), data, code); match_cpu_codename(cpudb_intel, COUNT_OF(cpudb_intel), data, code);
} }

53
tests/add_test.py Executable file
View file

@ -0,0 +1,53 @@
#!/usr/bin/python
import os, sys, re
args = sys.argv
if not len(args) in (3, 4):
print "Usage: add_test.py <rawdata file> <report file> [tests stash file]"
print "If the last is not specified, `tests_stash.txt' is assumed"
sys.exit(1)
rawdata = []
for line in open(args[1], "rt").readlines():
lookfor = ["basic_cpuid", "ext_cpuid", "intel_fn4"]
good = False
for match in lookfor:
if line.find(match) != -1:
good = True
break
if good:
rawdata.append(line.strip())
repdata = []
rexp = re.compile('(-?[0-9]+).*')
for line in open(args[2], "rt").readlines():
s = line.strip()
if s.find(":") == -1:
continue
numeric = ["family", "model", "stepping", "ext_family", "ext_model",
"num_cores", "num_logical", "L1 D cache", "L1 I cache",
"L2 cache", "L3 cache", "L1D assoc.", "L2 assoc.",
"L3 assoc.", "L1D line sz", "L2 line sz", "L3 line sz"]
field = s[:s.find(":")].strip()
if field in numeric:
value = s[s.find(":")+1:].strip()
if not rexp.match(value):
raise "Bad format of value: [%s]" % s
repdata.append(rexp.findall(value)[0])
if field == "code name":
value = s[s.find("`") + 1: s.find("'")]
repdata.append(value)
if field == "features":
value = s[s.find(":") + 2:]
repdata.append(value)
stash = "tests_stash.txt"
if len(args) == 4:
stash = args[3]
fout = open(stash, "at")
delimiter = "-" * 80
lines = rawdata + [delimiter] + repdata + [delimiter]
fout.writelines(map(lambda s: s + "\n", lines))
fout.close()

90
tests/run_tests.py Executable file
View file

@ -0,0 +1,90 @@
#!/usr/bin/python
import os, sys, re, random
### Constants:
fields = [ "family", "model", "stepping", "extfamily", "extmodel", "cores",
"logical", "l1d-cache", "l1i-cache", "l2-cache", "l3-cache",
"l1d-assoc", "l2-assoc", "l3-assoc", "l1d-cacheline",
"l2-cacheline", "l3-cacheline", "codename", "flags" ]
args = sys.argv
if len(args) != 3:
print "Usage: run_tests <tests stash file> <cpiud_tool binary>"
sys.exit(1)
f = open(args[1], "rt")
lines = f.readlines()
f.close()
# One would usually use os.tempnam, but libc gives off hell a lot of
# warnings when you attempt to use that :(
def make_tempname(prefix):
chars = ""
for i in xrange(26):
chars += chr(97+i)
chars += chr(65+i)
for i in xrange(10):
chars += chr(48+i)
for i in xrange(6):
prefix += random.choice(chars)
return prefix
def do_test(inp, expected_out, testno, binary):
fninp = make_tempname("cpuidin")
fnoutp = make_tempname("cpuidout")
f = open(fninp, "wt")
f.writelines(map(lambda s: s + "\n", inp))
f.close()
cmd = "%s --load=%s --outfile=%s %s" % (binary, fninp, fnoutp, " ".join(map(lambda s: "--" + s, fields)))
os.system(cmd)
os.unlink(fninp)
real_out = []
try:
f = open(fnoutp, "rt")
real_out = map(lambda s: s.strip(), f.readlines())
f.close()
os.unlink(fnoutp)
except IOError:
return "Exception"
if len(real_out) != len(expected_out) or len(real_out) != len(fields):
return "Unexpected number of records returned"
err_fields = []
for i in range(len(real_out)):
if real_out[i] != expected_out[i]:
err_fields.append(fields[i])
if not err_fields:
return "OK"
else:
return "Mismatch in fields %s" % str(err_fields)
current_input = []
current_output = []
build_output = False
errors = False
test_no = 1
print "Testing..."
for line in lines:
if line[:3] == "---":
if build_output:
codename = current_output[len(current_output) - 2]
result = do_test(current_input, current_output, test_no, args[2])
print "Test %d [%s]: %s" % (test_no, codename, result)
if result != "OK":
errors = True
build_output = False
test_no += 1
current_input = []
current_output = []
else:
build_output = True
else:
if build_output:
current_output.append(line.strip())
else:
current_input.append(line.strip())
if not errors:
print "All successfull!"

623
tests/tests_stash.txt Normal file
View file

@ -0,0 +1,623 @@
basic_cpuid[0]=00000002 756e6547 6c65746e 49656e69
basic_cpuid[1]=00000f25 0602080b 00004400 bfebfbff
basic_cpuid[2]=665b5001 00000000 00000000 007b7040
basic_cpuid[3]=665b5001 00000000 00000000 007b7040
basic_cpuid[4]=665b5001 00000000 00000000 007b7040
basic_cpuid[5]=665b5001 00000000 00000000 007b7040
basic_cpuid[6]=665b5001 00000000 00000000 007b7040
basic_cpuid[7]=665b5001 00000000 00000000 007b7040
basic_cpuid[8]=665b5001 00000000 00000000 007b7040
basic_cpuid[9]=665b5001 00000000 00000000 007b7040
basic_cpuid[10]=665b5001 00000000 00000000 007b7040
basic_cpuid[11]=665b5001 00000000 00000000 007b7040
basic_cpuid[12]=665b5001 00000000 00000000 007b7040
basic_cpuid[13]=665b5001 00000000 00000000 007b7040
basic_cpuid[14]=665b5001 00000000 00000000 007b7040
basic_cpuid[15]=665b5001 00000000 00000000 007b7040
basic_cpuid[16]=665b5001 00000000 00000000 007b7040
basic_cpuid[17]=665b5001 00000000 00000000 007b7040
basic_cpuid[18]=665b5001 00000000 00000000 007b7040
basic_cpuid[19]=665b5001 00000000 00000000 007b7040
basic_cpuid[20]=665b5001 00000000 00000000 007b7040
basic_cpuid[21]=665b5001 00000000 00000000 007b7040
basic_cpuid[22]=665b5001 00000000 00000000 007b7040
basic_cpuid[23]=665b5001 00000000 00000000 007b7040
basic_cpuid[24]=665b5001 00000000 00000000 007b7040
basic_cpuid[25]=665b5001 00000000 00000000 007b7040
basic_cpuid[26]=665b5001 00000000 00000000 007b7040
basic_cpuid[27]=665b5001 00000000 00000000 007b7040
basic_cpuid[28]=665b5001 00000000 00000000 007b7040
basic_cpuid[29]=665b5001 00000000 00000000 007b7040
basic_cpuid[30]=665b5001 00000000 00000000 007b7040
basic_cpuid[31]=665b5001 00000000 00000000 007b7040
ext_cpuid[0]=80000004 00000000 00000000 00000000
ext_cpuid[1]=00000000 00000000 00000000 00000000
ext_cpuid[2]=20202020 20202020 20202020 20202020
ext_cpuid[3]=6e492020 286c6574 58202952 286e6f65
ext_cpuid[4]=20294d54 20555043 30342e32 007a4847
ext_cpuid[5]=665b5001 00000000 00000000 007b7040
ext_cpuid[6]=665b5001 00000000 00000000 007b7040
ext_cpuid[7]=665b5001 00000000 00000000 007b7040
ext_cpuid[8]=665b5001 00000000 00000000 007b7040
ext_cpuid[9]=665b5001 00000000 00000000 007b7040
ext_cpuid[10]=665b5001 00000000 00000000 007b7040
ext_cpuid[11]=665b5001 00000000 00000000 007b7040
ext_cpuid[12]=665b5001 00000000 00000000 007b7040
ext_cpuid[13]=665b5001 00000000 00000000 007b7040
ext_cpuid[14]=665b5001 00000000 00000000 007b7040
ext_cpuid[15]=665b5001 00000000 00000000 007b7040
ext_cpuid[16]=665b5001 00000000 00000000 007b7040
ext_cpuid[17]=665b5001 00000000 00000000 007b7040
ext_cpuid[18]=665b5001 00000000 00000000 007b7040
ext_cpuid[19]=665b5001 00000000 00000000 007b7040
ext_cpuid[20]=665b5001 00000000 00000000 007b7040
ext_cpuid[21]=665b5001 00000000 00000000 007b7040
ext_cpuid[22]=665b5001 00000000 00000000 007b7040
ext_cpuid[23]=665b5001 00000000 00000000 007b7040
ext_cpuid[24]=665b5001 00000000 00000000 007b7040
ext_cpuid[25]=665b5001 00000000 00000000 007b7040
ext_cpuid[26]=665b5001 00000000 00000000 007b7040
ext_cpuid[27]=665b5001 00000000 00000000 007b7040
ext_cpuid[28]=665b5001 00000000 00000000 007b7040
ext_cpuid[29]=665b5001 00000000 00000000 007b7040
ext_cpuid[30]=665b5001 00000000 00000000 007b7040
ext_cpuid[31]=665b5001 00000000 00000000 007b7040
intel_fn4[0]=665b5001 00000000 00000000 007b7040
intel_fn4[1]=665b5001 00000000 00000000 007b7040
intel_fn4[2]=665b5001 00000000 00000000 007b7040
intel_fn4[3]=665b5001 00000000 00000000 007b7040
--------------------------------------------------------------------------------
15
2
5
15
2
1
2
8
12
512
0
4
8
-1
64
64
-1
Xeon (Prestonia)
fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid xtpr
--------------------------------------------------------------------------------
basic_cpuid[0]=00000001 68747541 444d4163 69746e65
basic_cpuid[1]=00020f32 01020800 00000001 178bfbff
basic_cpuid[2]=00000000 00000000 00000000 00000000
basic_cpuid[3]=00000000 00000000 00000000 00000000
basic_cpuid[4]=00000000 00000000 00000000 00000000
basic_cpuid[5]=00000000 00000000 00000000 00000000
basic_cpuid[6]=00000000 00000000 00000000 00000000
basic_cpuid[7]=00000000 00000000 00000000 00000000
basic_cpuid[8]=00000000 00000000 00000000 00000000
basic_cpuid[9]=00000000 00000000 00000000 00000000
basic_cpuid[10]=00000000 00000000 00000000 00000000
basic_cpuid[11]=00000000 00000000 00000000 00000000
basic_cpuid[12]=00000000 00000000 00000000 00000000
basic_cpuid[13]=00000000 00000000 00000000 00000000
basic_cpuid[14]=00000000 00000000 00000000 00000000
basic_cpuid[15]=00000000 00000000 00000000 00000000
basic_cpuid[16]=00000000 00000000 00000000 00000000
basic_cpuid[17]=00000000 00000000 00000000 00000000
basic_cpuid[18]=00000000 00000000 00000000 00000000
basic_cpuid[19]=00000000 00000000 00000000 00000000
basic_cpuid[20]=00000000 00000000 00000000 00000000
basic_cpuid[21]=00000000 00000000 00000000 00000000
basic_cpuid[22]=00000000 00000000 00000000 00000000
basic_cpuid[23]=00000000 00000000 00000000 00000000
basic_cpuid[24]=00000000 00000000 00000000 00000000
basic_cpuid[25]=00000000 00000000 00000000 00000000
basic_cpuid[26]=00000000 00000000 00000000 00000000
basic_cpuid[27]=00000000 00000000 00000000 00000000
basic_cpuid[28]=00000000 00000000 00000000 00000000
basic_cpuid[29]=00000000 00000000 00000000 00000000
basic_cpuid[30]=00000000 00000000 00000000 00000000
basic_cpuid[31]=00000000 00000000 00000000 00000000
ext_cpuid[0]=80000018 68747541 444d4163 69746e65
ext_cpuid[1]=00020f32 00000b04 00000003 e3d3fbff
ext_cpuid[2]=6c617544 726f4320 4d412065 704f2044
ext_cpuid[3]=6f726574 6d74286e 72502029 7365636f
ext_cpuid[4]=20726f73 00353631 00000000 00000000
ext_cpuid[5]=ff08ff08 ff20ff20 40020140 40020140
ext_cpuid[6]=00000000 42004200 04008140 00000000
ext_cpuid[7]=00000000 00000000 00000000 0000000f
ext_cpuid[8]=00003028 00000000 00000001 00000000
ext_cpuid[9]=00000000 00000000 00000000 00000000
ext_cpuid[10]=00000000 00000000 00000000 00000000
ext_cpuid[11]=00000000 00000000 00000000 00000000
ext_cpuid[12]=00000000 00000000 00000000 00000000
ext_cpuid[13]=00000000 00000000 00000000 00000000
ext_cpuid[14]=00000000 00000000 00000000 00000000
ext_cpuid[15]=00000000 00000000 00000000 00000000
ext_cpuid[16]=00000000 00000000 00000000 00000000
ext_cpuid[17]=00000000 00000000 00000000 00000000
ext_cpuid[18]=00000000 00000000 00000000 00000000
ext_cpuid[19]=00000000 00000000 00000000 00000000
ext_cpuid[20]=00000000 00000000 00000000 00000000
ext_cpuid[21]=00000000 00000000 00000000 00000000
ext_cpuid[22]=00000000 00000000 00000000 00000000
ext_cpuid[23]=00000000 00000000 00000000 00000000
ext_cpuid[24]=00000000 00000000 00000000 00000000
ext_cpuid[25]=00000000 00000000 00000000 00000000
ext_cpuid[26]=00000000 00000000 00000000 00000000
ext_cpuid[27]=00000000 00000000 00000000 00000000
ext_cpuid[28]=00000000 00000000 00000000 00000000
ext_cpuid[29]=00000000 00000000 00000000 00000000
ext_cpuid[30]=00000000 00000000 00000000 00000000
ext_cpuid[31]=00000000 00000000 00000000 00000000
intel_fn4[0]=00000000 00000000 00000000 00000000
intel_fn4[1]=00000000 00000000 00000000 00000000
intel_fn4[2]=00000000 00000000 00000000 00000000
intel_fn4[3]=00000000 00000000 00000000 00000000
--------------------------------------------------------------------------------
15
3
2
15
35
2
2
64
64
1024
0
2
16
-1
64
64
-1
Opteron (Dual Core)
fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht pni syscall mmxext 3dnow 3dnowext nx fxsr_opt lm lahf_lm cmp_legacy ts fid vid ttp
--------------------------------------------------------------------------------
basic_cpuid[0]=0000000a 756e6547 6c65746e 49656e69
basic_cpuid[1]=000006f6 00020800 0000e3bd bfebfbff
basic_cpuid[2]=05b0b101 005657f0 00000000 2cb43049
basic_cpuid[3]=00000000 00000000 00000000 00000000
basic_cpuid[4]=04000121 01c0003f 0000003f 00000001
basic_cpuid[5]=00000040 00000040 00000003 00000020
basic_cpuid[6]=00000001 00000002 00000001 00000000
basic_cpuid[7]=00000000 00000000 00000000 00000000
basic_cpuid[8]=00000400 00000000 00000000 00000000
basic_cpuid[9]=00000000 00000000 00000000 00000000
basic_cpuid[10]=07280202 00000000 00000000 00000000
basic_cpuid[11]=07280202 00000000 00000000 00000000
basic_cpuid[12]=07280202 00000000 00000000 00000000
basic_cpuid[13]=07280202 00000000 00000000 00000000
basic_cpuid[14]=07280202 00000000 00000000 00000000
basic_cpuid[15]=07280202 00000000 00000000 00000000
basic_cpuid[16]=07280202 00000000 00000000 00000000
basic_cpuid[17]=07280202 00000000 00000000 00000000
basic_cpuid[18]=07280202 00000000 00000000 00000000
basic_cpuid[19]=07280202 00000000 00000000 00000000
basic_cpuid[20]=07280202 00000000 00000000 00000000
basic_cpuid[21]=07280202 00000000 00000000 00000000
basic_cpuid[22]=07280202 00000000 00000000 00000000
basic_cpuid[23]=07280202 00000000 00000000 00000000
basic_cpuid[24]=07280202 00000000 00000000 00000000
basic_cpuid[25]=07280202 00000000 00000000 00000000
basic_cpuid[26]=07280202 00000000 00000000 00000000
basic_cpuid[27]=07280202 00000000 00000000 00000000
basic_cpuid[28]=07280202 00000000 00000000 00000000
basic_cpuid[29]=07280202 00000000 00000000 00000000
basic_cpuid[30]=07280202 00000000 00000000 00000000
basic_cpuid[31]=07280202 00000000 00000000 00000000
ext_cpuid[0]=80000008 00000000 00000000 00000000
ext_cpuid[1]=00000000 00000000 00000001 20100000
ext_cpuid[2]=65746e49 2952286c 726f4320 4d542865
ext_cpuid[3]=43203229 20205550 20202020 20202020
ext_cpuid[4]=30323436 20402020 33312e32 007a4847
ext_cpuid[5]=00000000 00000000 00000000 00000000
ext_cpuid[6]=00000000 00000000 10008040 00000000
ext_cpuid[7]=00000000 00000000 00000000 00000000
ext_cpuid[8]=00003024 00000000 00000000 00000000
ext_cpuid[9]=07280202 00000000 00000000 00000000
ext_cpuid[10]=07280202 00000000 00000000 00000000
ext_cpuid[11]=07280202 00000000 00000000 00000000
ext_cpuid[12]=07280202 00000000 00000000 00000000
ext_cpuid[13]=07280202 00000000 00000000 00000000
ext_cpuid[14]=07280202 00000000 00000000 00000000
ext_cpuid[15]=07280202 00000000 00000000 00000000
ext_cpuid[16]=07280202 00000000 00000000 00000000
ext_cpuid[17]=07280202 00000000 00000000 00000000
ext_cpuid[18]=07280202 00000000 00000000 00000000
ext_cpuid[19]=07280202 00000000 00000000 00000000
ext_cpuid[20]=07280202 00000000 00000000 00000000
ext_cpuid[21]=07280202 00000000 00000000 00000000
ext_cpuid[22]=07280202 00000000 00000000 00000000
ext_cpuid[23]=07280202 00000000 00000000 00000000
ext_cpuid[24]=07280202 00000000 00000000 00000000
ext_cpuid[25]=07280202 00000000 00000000 00000000
ext_cpuid[26]=07280202 00000000 00000000 00000000
ext_cpuid[27]=07280202 00000000 00000000 00000000
ext_cpuid[28]=07280202 00000000 00000000 00000000
ext_cpuid[29]=07280202 00000000 00000000 00000000
ext_cpuid[30]=07280202 00000000 00000000 00000000
ext_cpuid[31]=07280202 00000000 00000000 00000000
intel_fn4[0]=04000121 01c0003f 0000003f 00000001
intel_fn4[1]=04000122 01c0003f 0000003f 00000001
intel_fn4[2]=04004143 03c0003f 00000fff 00000001
intel_fn4[3]=00000000 00000000 00000000 00000000
--------------------------------------------------------------------------------
6
15
6
6
15
2
2
32
32
4096
-1
8
16
-1
64
64
-1
Conroe (Core 2 Duo)
fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pni dts64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm xd lm lahf_lm
--------------------------------------------------------------------------------
basic_cpuid[0]=0000000a 756e6547 6c65746e 49656e69
basic_cpuid[1]=00010676 01020800 0000e39d bfebfbff
basic_cpuid[2]=05b0b101 005657f0 00000000 2cb4307d
basic_cpuid[3]=00000000 00000000 00000000 00000000
basic_cpuid[4]=04000121 01c0003f 0000003f 00000001
basic_cpuid[5]=00000040 00000040 00000003 00022220
basic_cpuid[6]=00000001 00000002 00000001 00000000
basic_cpuid[7]=00000000 00000000 00000000 00000000
basic_cpuid[8]=00000400 00000000 00000000 00000000
basic_cpuid[9]=00000000 00000000 00000000 00000000
basic_cpuid[10]=07280202 00000000 00000000 00000503
basic_cpuid[11]=07280202 00000000 00000000 00000503
basic_cpuid[12]=07280202 00000000 00000000 00000503
basic_cpuid[13]=07280202 00000000 00000000 00000503
basic_cpuid[14]=07280202 00000000 00000000 00000503
basic_cpuid[15]=07280202 00000000 00000000 00000503
basic_cpuid[16]=07280202 00000000 00000000 00000503
basic_cpuid[17]=07280202 00000000 00000000 00000503
basic_cpuid[18]=07280202 00000000 00000000 00000503
basic_cpuid[19]=07280202 00000000 00000000 00000503
basic_cpuid[20]=07280202 00000000 00000000 00000503
basic_cpuid[21]=07280202 00000000 00000000 00000503
basic_cpuid[22]=07280202 00000000 00000000 00000503
basic_cpuid[23]=07280202 00000000 00000000 00000503
basic_cpuid[24]=07280202 00000000 00000000 00000503
basic_cpuid[25]=07280202 00000000 00000000 00000503
basic_cpuid[26]=07280202 00000000 00000000 00000503
basic_cpuid[27]=07280202 00000000 00000000 00000503
basic_cpuid[28]=07280202 00000000 00000000 00000503
basic_cpuid[29]=07280202 00000000 00000000 00000503
basic_cpuid[30]=07280202 00000000 00000000 00000503
basic_cpuid[31]=07280202 00000000 00000000 00000503
ext_cpuid[0]=80000008 00000000 00000000 00000000
ext_cpuid[1]=00000000 00000000 00000001 20100000
ext_cpuid[2]=746e6550 286d7569 44202952 2d6c6175
ext_cpuid[3]=65726f43 50432020 20202055 45202020
ext_cpuid[4]=30303235 20402020 30352e32 007a4847
ext_cpuid[5]=00000000 00000000 00000000 00000000
ext_cpuid[6]=00000000 00000000 08006040 00000000
ext_cpuid[7]=00000000 00000000 00000000 00000000
ext_cpuid[8]=00003024 00000000 00000000 00000000
ext_cpuid[9]=07280202 00000000 00000000 00000503
ext_cpuid[10]=07280202 00000000 00000000 00000503
ext_cpuid[11]=07280202 00000000 00000000 00000503
ext_cpuid[12]=07280202 00000000 00000000 00000503
ext_cpuid[13]=07280202 00000000 00000000 00000503
ext_cpuid[14]=07280202 00000000 00000000 00000503
ext_cpuid[15]=07280202 00000000 00000000 00000503
ext_cpuid[16]=07280202 00000000 00000000 00000503
ext_cpuid[17]=07280202 00000000 00000000 00000503
ext_cpuid[18]=07280202 00000000 00000000 00000503
ext_cpuid[19]=07280202 00000000 00000000 00000503
ext_cpuid[20]=07280202 00000000 00000000 00000503
ext_cpuid[21]=07280202 00000000 00000000 00000503
ext_cpuid[22]=07280202 00000000 00000000 00000503
ext_cpuid[23]=07280202 00000000 00000000 00000503
ext_cpuid[24]=07280202 00000000 00000000 00000503
ext_cpuid[25]=07280202 00000000 00000000 00000503
ext_cpuid[26]=07280202 00000000 00000000 00000503
ext_cpuid[27]=07280202 00000000 00000000 00000503
ext_cpuid[28]=07280202 00000000 00000000 00000503
ext_cpuid[29]=07280202 00000000 00000000 00000503
ext_cpuid[30]=07280202 00000000 00000000 00000503
ext_cpuid[31]=07280202 00000000 00000000 00000503
intel_fn4[0]=04000121 01c0003f 0000003f 00000001
intel_fn4[1]=04000122 01c0003f 0000003f 00000001
intel_fn4[2]=04004143 01c0003f 00000fff 00000001
intel_fn4[3]=00000000 00000000 00000000 00000000
--------------------------------------------------------------------------------
6
7
6
6
23
2
2
32
32
2048
-1
8
8
-1
64
64
-1
Wolfdale (Core 2 Duo) 2M
fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pni dts64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm xd lm lahf_lm
--------------------------------------------------------------------------------
basic_cpuid[0]=0000000a 756e6547 6c65746e 49656e69
basic_cpuid[1]=000006fd 01020800 0000e39d bfebfbff
basic_cpuid[2]=05b0b101 005657f0 00000000 2cb4307d
basic_cpuid[3]=00000000 00000000 00000000 00000000
basic_cpuid[4]=04000121 01c0003f 0000003f 00000001
basic_cpuid[5]=00000040 00000040 00000003 00000220
basic_cpuid[6]=00000001 00000002 00000001 00000000
basic_cpuid[7]=00000000 00000000 00000000 00000000
basic_cpuid[8]=00000400 00000000 00000000 00000000
basic_cpuid[9]=00000000 00000000 00000000 00000000
basic_cpuid[10]=07280202 00000000 00000000 00000503
basic_cpuid[11]=07280202 00000000 00000000 00000503
basic_cpuid[12]=07280202 00000000 00000000 00000503
basic_cpuid[13]=07280202 00000000 00000000 00000503
basic_cpuid[14]=07280202 00000000 00000000 00000503
basic_cpuid[15]=07280202 00000000 00000000 00000503
basic_cpuid[16]=07280202 00000000 00000000 00000503
basic_cpuid[17]=07280202 00000000 00000000 00000503
basic_cpuid[18]=07280202 00000000 00000000 00000503
basic_cpuid[19]=07280202 00000000 00000000 00000503
basic_cpuid[20]=07280202 00000000 00000000 00000503
basic_cpuid[21]=07280202 00000000 00000000 00000503
basic_cpuid[22]=07280202 00000000 00000000 00000503
basic_cpuid[23]=07280202 00000000 00000000 00000503
basic_cpuid[24]=07280202 00000000 00000000 00000503
basic_cpuid[25]=07280202 00000000 00000000 00000503
basic_cpuid[26]=07280202 00000000 00000000 00000503
basic_cpuid[27]=07280202 00000000 00000000 00000503
basic_cpuid[28]=07280202 00000000 00000000 00000503
basic_cpuid[29]=07280202 00000000 00000000 00000503
basic_cpuid[30]=07280202 00000000 00000000 00000503
basic_cpuid[31]=07280202 00000000 00000000 00000503
ext_cpuid[0]=80000008 00000000 00000000 00000000
ext_cpuid[1]=00000000 00000000 00000001 20100000
ext_cpuid[2]=65746e49 2952286c 726f4320 4d542865
ext_cpuid[3]=44203229 43206f75 20205550 45202020
ext_cpuid[4]=30303534 20402020 30322e32 007a4847
ext_cpuid[5]=00000000 00000000 00000000 00000000
ext_cpuid[6]=00000000 00000000 08006040 00000000
ext_cpuid[7]=00000000 00000000 00000000 00000000
ext_cpuid[8]=00003024 00000000 00000000 00000000
ext_cpuid[9]=07280202 00000000 00000000 00000503
ext_cpuid[10]=07280202 00000000 00000000 00000503
ext_cpuid[11]=07280202 00000000 00000000 00000503
ext_cpuid[12]=07280202 00000000 00000000 00000503
ext_cpuid[13]=07280202 00000000 00000000 00000503
ext_cpuid[14]=07280202 00000000 00000000 00000503
ext_cpuid[15]=07280202 00000000 00000000 00000503
ext_cpuid[16]=07280202 00000000 00000000 00000503
ext_cpuid[17]=07280202 00000000 00000000 00000503
ext_cpuid[18]=07280202 00000000 00000000 00000503
ext_cpuid[19]=07280202 00000000 00000000 00000503
ext_cpuid[20]=07280202 00000000 00000000 00000503
ext_cpuid[21]=07280202 00000000 00000000 00000503
ext_cpuid[22]=07280202 00000000 00000000 00000503
ext_cpuid[23]=07280202 00000000 00000000 00000503
ext_cpuid[24]=07280202 00000000 00000000 00000503
ext_cpuid[25]=07280202 00000000 00000000 00000503
ext_cpuid[26]=07280202 00000000 00000000 00000503
ext_cpuid[27]=07280202 00000000 00000000 00000503
ext_cpuid[28]=07280202 00000000 00000000 00000503
ext_cpuid[29]=07280202 00000000 00000000 00000503
ext_cpuid[30]=07280202 00000000 00000000 00000503
ext_cpuid[31]=07280202 00000000 00000000 00000503
intel_fn4[0]=04000121 01c0003f 0000003f 00000001
intel_fn4[1]=04000122 01c0003f 0000003f 00000001
intel_fn4[2]=04004143 01c0003f 00000fff 00000001
intel_fn4[3]=00000000 00000000 00000000 00000000
--------------------------------------------------------------------------------
6
15
13
6
15
2
2
32
32
2048
-1
8
8
-1
64
64
-1
Allendale (Core 2 Duo)
fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pni dts64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm xd lm lahf_lm
--------------------------------------------------------------------------------
basic_cpuid[0]=00000002 756e6547 6c65746e 49656e69
basic_cpuid[1]=0000068a 00000002 00000000 0383fbff
basic_cpuid[2]=03020101 00000000 00000000 0c040882
basic_cpuid[3]=03020101 00000000 00000000 0c040882
basic_cpuid[4]=03020101 00000000 00000000 0c040882
basic_cpuid[5]=03020101 00000000 00000000 0c040882
basic_cpuid[6]=03020101 00000000 00000000 0c040882
basic_cpuid[7]=03020101 00000000 00000000 0c040882
basic_cpuid[8]=03020101 00000000 00000000 0c040882
basic_cpuid[9]=03020101 00000000 00000000 0c040882
basic_cpuid[10]=03020101 00000000 00000000 0c040882
basic_cpuid[11]=03020101 00000000 00000000 0c040882
basic_cpuid[12]=03020101 00000000 00000000 0c040882
basic_cpuid[13]=03020101 00000000 00000000 0c040882
basic_cpuid[14]=03020101 00000000 00000000 0c040882
basic_cpuid[15]=03020101 00000000 00000000 0c040882
basic_cpuid[16]=03020101 00000000 00000000 0c040882
basic_cpuid[17]=03020101 00000000 00000000 0c040882
basic_cpuid[18]=03020101 00000000 00000000 0c040882
basic_cpuid[19]=03020101 00000000 00000000 0c040882
basic_cpuid[20]=03020101 00000000 00000000 0c040882
basic_cpuid[21]=03020101 00000000 00000000 0c040882
basic_cpuid[22]=03020101 00000000 00000000 0c040882
basic_cpuid[23]=03020101 00000000 00000000 0c040882
basic_cpuid[24]=03020101 00000000 00000000 0c040882
basic_cpuid[25]=03020101 00000000 00000000 0c040882
basic_cpuid[26]=03020101 00000000 00000000 0c040882
basic_cpuid[27]=03020101 00000000 00000000 0c040882
basic_cpuid[28]=03020101 00000000 00000000 0c040882
basic_cpuid[29]=03020101 00000000 00000000 0c040882
basic_cpuid[30]=03020101 00000000 00000000 0c040882
basic_cpuid[31]=03020101 00000000 00000000 0c040882
ext_cpuid[0]=03020101 00000000 00000000 0c040882
ext_cpuid[1]=03020101 00000000 00000000 0c040882
ext_cpuid[2]=03020101 00000000 00000000 0c040882
ext_cpuid[3]=03020101 00000000 00000000 0c040882
ext_cpuid[4]=03020101 00000000 00000000 0c040882
ext_cpuid[5]=03020101 00000000 00000000 0c040882
ext_cpuid[6]=03020101 00000000 00000000 0c040882
ext_cpuid[7]=03020101 00000000 00000000 0c040882
ext_cpuid[8]=03020101 00000000 00000000 0c040882
ext_cpuid[9]=03020101 00000000 00000000 0c040882
ext_cpuid[10]=03020101 00000000 00000000 0c040882
ext_cpuid[11]=03020101 00000000 00000000 0c040882
ext_cpuid[12]=03020101 00000000 00000000 0c040882
ext_cpuid[13]=03020101 00000000 00000000 0c040882
ext_cpuid[14]=03020101 00000000 00000000 0c040882
ext_cpuid[15]=03020101 00000000 00000000 0c040882
ext_cpuid[16]=03020101 00000000 00000000 0c040882
ext_cpuid[17]=03020101 00000000 00000000 0c040882
ext_cpuid[18]=03020101 00000000 00000000 0c040882
ext_cpuid[19]=03020101 00000000 00000000 0c040882
ext_cpuid[20]=03020101 00000000 00000000 0c040882
ext_cpuid[21]=03020101 00000000 00000000 0c040882
ext_cpuid[22]=03020101 00000000 00000000 0c040882
ext_cpuid[23]=03020101 00000000 00000000 0c040882
ext_cpuid[24]=03020101 00000000 00000000 0c040882
ext_cpuid[25]=03020101 00000000 00000000 0c040882
ext_cpuid[26]=03020101 00000000 00000000 0c040882
ext_cpuid[27]=03020101 00000000 00000000 0c040882
ext_cpuid[28]=03020101 00000000 00000000 0c040882
ext_cpuid[29]=03020101 00000000 00000000 0c040882
ext_cpuid[30]=03020101 00000000 00000000 0c040882
ext_cpuid[31]=03020101 00000000 00000000 0c040882
intel_fn4[0]=03020101 00000000 00000000 0c040882
intel_fn4[1]=03020101 00000000 00000000 0c040882
intel_fn4[2]=03020101 00000000 00000000 0c040882
intel_fn4[3]=03020101 00000000 00000000 0c040882
--------------------------------------------------------------------------------
6
8
10
6
8
1
1
16
16
256
-1
4
8
-1
32
32
-1
Pentium III (Coppermine)
fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 mmx fxsr sse syscall
--------------------------------------------------------------------------------
basic_cpuid[0]=00000005 756e6547 6c65746e 49656e69
basic_cpuid[1]=00000f34 00010800 0000441d bfebfbff
basic_cpuid[2]=605b5101 00000000 00000000 003c7040
basic_cpuid[3]=00000000 00000000 00000000 00000000
basic_cpuid[4]=00000121 01c0003f 0000001f 00000000
basic_cpuid[5]=00000040 00000040 00000000 00000000
basic_cpuid[6]=00000040 00000040 00000000 00000000
basic_cpuid[7]=00000040 00000040 00000000 00000000
basic_cpuid[8]=00000040 00000040 00000000 00000000
basic_cpuid[9]=00000040 00000040 00000000 00000000
basic_cpuid[10]=00000040 00000040 00000000 00000000
basic_cpuid[11]=00000040 00000040 00000000 00000000
basic_cpuid[12]=00000040 00000040 00000000 00000000
basic_cpuid[13]=00000040 00000040 00000000 00000000
basic_cpuid[14]=00000040 00000040 00000000 00000000
basic_cpuid[15]=00000040 00000040 00000000 00000000
basic_cpuid[16]=00000040 00000040 00000000 00000000
basic_cpuid[17]=00000040 00000040 00000000 00000000
basic_cpuid[18]=00000040 00000040 00000000 00000000
basic_cpuid[19]=00000040 00000040 00000000 00000000
basic_cpuid[20]=00000040 00000040 00000000 00000000
basic_cpuid[21]=00000040 00000040 00000000 00000000
basic_cpuid[22]=00000040 00000040 00000000 00000000
basic_cpuid[23]=00000040 00000040 00000000 00000000
basic_cpuid[24]=00000040 00000040 00000000 00000000
basic_cpuid[25]=00000040 00000040 00000000 00000000
basic_cpuid[26]=00000040 00000040 00000000 00000000
basic_cpuid[27]=00000040 00000040 00000000 00000000
basic_cpuid[28]=00000040 00000040 00000000 00000000
basic_cpuid[29]=00000040 00000040 00000000 00000000
basic_cpuid[30]=00000040 00000040 00000000 00000000
basic_cpuid[31]=00000040 00000040 00000000 00000000
ext_cpuid[0]=80000008 00000000 00000000 00000000
ext_cpuid[1]=00000000 00000000 00000000 00000000
ext_cpuid[2]=20202020 20202020 20202020 20202020
ext_cpuid[3]=65746e49 2952286c 6c654320 6e6f7265
ext_cpuid[4]=20295228 20555043 30342e32 007a4847
ext_cpuid[5]=00000000 00000000 00000000 00000000
ext_cpuid[6]=00000000 00000000 01004040 00000000
ext_cpuid[7]=00000000 00000000 00000000 00000000
ext_cpuid[8]=00002024 00000000 00000000 00000000
ext_cpuid[9]=00000040 00000040 00000000 00000000
ext_cpuid[10]=00000040 00000040 00000000 00000000
ext_cpuid[11]=00000040 00000040 00000000 00000000
ext_cpuid[12]=00000040 00000040 00000000 00000000
ext_cpuid[13]=00000040 00000040 00000000 00000000
ext_cpuid[14]=00000040 00000040 00000000 00000000
ext_cpuid[15]=00000040 00000040 00000000 00000000
ext_cpuid[16]=00000040 00000040 00000000 00000000
ext_cpuid[17]=00000040 00000040 00000000 00000000
ext_cpuid[18]=00000040 00000040 00000000 00000000
ext_cpuid[19]=00000040 00000040 00000000 00000000
ext_cpuid[20]=00000040 00000040 00000000 00000000
ext_cpuid[21]=00000040 00000040 00000000 00000000
ext_cpuid[22]=00000040 00000040 00000000 00000000
ext_cpuid[23]=00000040 00000040 00000000 00000000
ext_cpuid[24]=00000040 00000040 00000000 00000000
ext_cpuid[25]=00000040 00000040 00000000 00000000
ext_cpuid[26]=00000040 00000040 00000000 00000000
ext_cpuid[27]=00000040 00000040 00000000 00000000
ext_cpuid[28]=00000040 00000040 00000000 00000000
ext_cpuid[29]=00000040 00000040 00000000 00000000
ext_cpuid[30]=00000040 00000040 00000000 00000000
ext_cpuid[31]=00000040 00000040 00000000 00000000
intel_fn4[0]=00000121 01c0003f 0000001f 00000000
intel_fn4[1]=00000143 00c0103f 000001ff 00000000
intel_fn4[2]=00000000 00000000 00000000 00000000
intel_fn4[3]=00000000 00000000 00000000 00000000
--------------------------------------------------------------------------------
15
3
4
15
3
1
2
16
-1
256
-1
8
4
-1
64
64
-1
Celeron D
fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pni dts64 monitor ds_cpl cid xtpr
--------------------------------------------------------------------------------