boinc/client/win/cpuid_tbl.cpp

265 lines
9.0 KiB
C++

//
// cpuid_tbl.cpp - Define different x86 CPUs
//
#include "cpuid_tbl.h"
CPUID_DEFS cpuid_tbl[] = {
{0,0,0,0,-2,1,"[GenuineIntel]","Intel","Intel Corp."}, // 0,0,0,0 = New Vendor
{4,0,-1,-1,-2,-1,"486 DX-25/33","486",""},
{4,1,-1,-1,-2,-1,"486 DX-50","486",""},
{4,2,-1,-1,-2,-1,"486 SX","486",""},
{4,3,-1,-1,-2,-1,"486 DX/2","486",""},
{4,4,-1,-1,-2,-1,"486 SL","486",""},
{4,5,-1,-1,-2,-1,"486 SX/2","486",""},
{4,7,-1,-1,-2,-1,"486 DX/2E","486",""},
{4,8,-1,-1,-2,-1,"486 DX/2E","486",""},
{4,9,-1,-1,-2,-1,"486 DX/4","486",""},
{5,0,-1,-1,-2,-1,"Pentium","P1","66a"},
{5,1,-1,-1,-2,-1,"Pentium","P1","66a"},
{5,2,-1,-1,-2,-1,"Pentium","P1","75"},
{5,3,-1,-1,-2,-1,"Pentium","P1","OverDrive"},
{5,4,-1,-1,-2,-1,"Pentium-MMX","P1",""},
{5,7,-1,-1,-2,-1,"Pentium-I-M","Pmmx",""},
{5,8,-1,-1,-2,-1,"Pentium-MMX-M","Pmmx",""},
{6,0,-1,-1,-2,-1,"Pentium-Pro","Ppro","A-step"},
{6,1,-1,-1,-2,-1,"Pentium-Pro","Ppro",""},
{6,3,-1,-1,-2,-1,"Pentium-II","P2","(Klamath)"},
{6,5,-1,-1,-2,-1,"Pentium-II","P2","(Deschutes)"},
{6,5,-1,-1,-2, 16,"P2 Celeron","P2c",""},
{6,5,-1,-1,-2,256,"Pentium-II","P2",""},
{6,6,-1,-1,-2, 16,"P2 Celeron","P2c","(Mendocino)"},
{6,6,-1,-1,-2,256,"Pentium-II","P2c","(Mendocino)"},
{6,7,-1,-1,-2, 16,"P3 Celeron","P3c","(Katmai)"},
{6,7,-1,-1,-2,512,"Pentium-III","P3","(Katmai)"},
{6,8,-1,-1,0x1,-1,"P3 Celeron","P3c","(Coppermine)"},
{6,8,-1,-1,0x2,-1,"Pentium-III","P3","(Coppermine)"},
{6,8,-1,-1,0x3,-1,"Pentium-III Xeon","P3-x","(Coppermine)"},
{6,9,-1,-1,0x3,-1,"P3 Celeron","P3c",""},
{6,9,-1,-1,0x4,-1,"Pentium-III","P3",""},
{6,9,-1,-1,0x6,-1,"Pentium-III (mobile)","P3c",""},
{6,9,-1,-1,0x7,-1,"P3 Celeron (mobile)","P3cM",""},
{6,10,-1,-1,-2, 16,"P3 Celeron","P3c",""},
{6,10,-1,-1,-2,4096,"Pentium-III","P3",""},
{6,11,-1,-1,0x3,-1,"P3 Celeron","P3c",""},
{6,11,-1,-1,0x4,-1,"Pentium-III","P3",""},
{6,11,-1,-1,0x6,-1,"Pentium-III (mobile)","P3c",""},
{6,11,-1,-1,0x7,-1,"P3 Celeron (mobile)","P3cM",""},
{6,13,-1,-1,-2,-1,"Pentium M","PM",""},
{7,0, 0,-1,-2,-1,"Itanium","IA64","(Merced)"},
{7,0, 1,-1,-2,-1,"Itanium-II","IA64-2","(McKinley)"},
{7,1, 1,-1,-2,-1,"Itanium-II","IA64-2","(Madison)"},
{7,2, 1,-1,-2,-1,"Itanium-II","IA64-2","(Madison 9M)"},
{7,99, 1,-1,-2,-1,"Itanium-II Plus","IA64+","(Unknown)"},
{7,99,99,-1,-2,-1,"Itanium-?? Plus","IA64+","(Unknown)"},
{15,1,-1,-1,0x08,-1,"Pentium-IV","P4","(Willamette)"},
{15,1,-1,-1,0x0A,-1,"P4 Celeron","P4","(Willamette)"},
{15,1,-1,-1,0x0B,-1,"Pentium-IV Xeon MP","P4","(Willamette)"},
{15,1,-1,-1,0x0E,-1,"Pentium-IV Xeon","P4","(Willamette)"},
{15,1,-1,-1, -1,-1,"Pentium-IV","P4",""},
{15,2,-1,-1,0x09,-1,"Pentium-IV","P4",""},
{15,2,-1,-1,0x0B,-1,"Pentium-IV Xeon","P4",""},
{15,2,-1,-1,0x0C,-1,"Pentium-IV Xeon MP","P4",""},
{15,2,-1,-1,0x0E,-1,"Pentium-IV (mobile)","P4",""},
{15,2,-1,-1,0x0F,-1,"P4 Celeron (mobile)","P4",""},
{15,2,-1,-1,0x12,-1,"P4 Celeron M","P4",""},
{15,2,-1,-1,0x16,-1,"Pentium M","P4",""},
{15,2,-1,-1, -1,-1,"Pentium-IV","P4",""},
{15,3,-1,-1,0x12,-1,"P4 Celeron M","P4",""},
{15,3,-1,-1,0x13,-1,"Pentium-IV (mobile)","P4",""},
{15,3,-1,-1,0x14,-1,"P4 Celeron M","P4",""},
{15,3,-1,-1,0x16,-1,"Pentium M","P4",""},
{15,3,-1,-1, -1,-1,"Pentium-IV","P4",""},
{16,0,-1,-1, -1,-1,"Pentium-IV Plus","P4+",""},
// AMD
{0,0,0,0,-2,2,"[AMD ISBETTER]","AMD","Advanced Micro Devices"},
{0,0,0,0,-2,2,"[AuthenticAMD]","AMD","Advanced Micro Devices"},
{4,3,-1,-1,-2,-1,"486 DX/2","486",""},
{4,7,-1,-1,-2,-1,"486 DX/2","486",""},
{4,8,-1,-1,-2,-1,"486 DX/4","486",""},
{4,9,-1,-1,-2,-1,"486 DX/4","486",""},
{4,14,-1,-1,-2,-1,"Am5x86","5x86",""},
{4,15,-1,-1,-2,-1,"Am5x86","5x86","SSA5"},
{5,0,-1,-1,-2,-1,"K5","K5",""},
{5,1,-1,-1,-2,-1,"K5","K5",""},
{5,2,-1,-1,-2,-1,"K5","K5",""},
{5,3,-1,-1,-2,-1,"K5","K5",""},
{5,6,-1,-1,-2,-1,"K6","K6",""},
{5,7,-1,-1,-2,-1,"K6","K6",""},
{5,8,-1,-1,-2,-1,"K6-2","K6-2",""},
{5,9,-1,-1,-2,-1,"K6-III","K6-3","Sharptooth"},
{5,13,-1,-1,-2,-1,"K6-2+","K6-3+","Sharptooth"},
{6,0,-1,-1,-2,-1,"Athlon","K7",""},
{6,1,-1,-1,-2,-1,"Athlon","K7",""},
{6,2,-1,-1,-2,-1,"Athlon","K7",""},
{6,3,-1,-1,-2,-1,"Duron","K7","(mobile)"},
{6,4,-1,-1,-2,-1,"Athlon","K7","Thunderbird"},
{6,5,-1,-1,-2,-1,"Athlon","K7",""},
//With model >=6, If the L2 cache size reported is less than 256, then the processor is an AMD Duron family processor
//MP if multiprocessor bit is set
{6,6,-1,-1,-2,256,"Athlon XP","K7-XP","Palomino"},
{6,6,-1,-1,-2,16,"Duron XP","K7-XP","Palomino"},
{6,7,-1,-1,-2,256,"Athlon M","K7","Morgan"},
{6,7,-1,-1,-2,16,"Duron M","K7","Morgan"},
{6,8,-1,-1,-2,256,"Athlon XP","K7-XP","Thoroughbred"},
{6,8,-1,-1,-2,16,"Duron XP","K7-XP","Thoroughbred"},
{6,9,-1,-1,-2,256,"Athlon XP","K7-XP","Thoroughbred"},
{6,9,-1,-1,-2,16,"Duron XP","K7-XP","Thoroughbred"},
{6,10,-1,-1,-2,256,"Athlon XP","K7","Barton"},
{6,10,-1,-1,-2,16,"Duron XP","K7","Barton"},
{6,99,-1,-1,-2,16,"Athlon XP plus","K7+","(Unknown)"},
{15,99,0,4,-2,-1,"Athlon-64","K8",""},
{15,99,0,5,-2,-1,"Athlon-64 FX","K8","(Opteron)"},
{15,99,0,15,-2,-1,"Athlon-64","K8",""},
{15,99,0,99,-2,-1,"Athlon-64 plus","K8+","(Unknown)"},
{0,0,0,0,-2,3,"[CyrixInstead]","Cyrix","Cyrix Corp. / VIA Inc."},
{4,4,-1,-1,-2,-1,"MediaGX","MedGx",""},
// CPU feature flags. The 6x86L supports the "compare and exchange 8-byte
{5,2,-1,-1,-2,-1,"6x86/6x86L","6x86L",""},
{5,4,-1,-1,-2,-1,"MediaGX","GxMmx","MMX enhanced"},
{6,0,-1,-1,-2,-1,"6x86MX","6x86MX",""},
{6,5,-1,-1,-2,-1,"VIA-Cyrix","M2","M2 core"},
{6,6,-1,-1,-2,-1,"WinChip-C5a","C5A","C5A"},
{6,7,-1,-1,-2,-1,"WinChip-C5b","C5C","C5C"},
{6,8,-1,-1,-2,-1,"WinChip-C5n","C5N","C5N"},
{6,9,-1,-1,-2,-1,"WinChip-C5XL","C5P","C5P"},
{0,0,0,0,-2,4,"[UMC UMC UMC ]","UMC","United Microelectronics Corp."},
{4,1,-1,-1,-2,-1,"U5D","U5D",""},
{2,99,-1,-1,-2,-1,"U5S","U5S",""},
{0,0,0,0,-2,5,"[NexGenDriven]","Nexgen","NexGen Inc."},
{5,0,-1,-1,-2,-1,"Nx586","Nx586",""},
{0,0,0,0,-2,6,"[RiseRiseRise]","Rise","Rise"},
{5,0,-1,-1,-2,-1,"mP6","mP6",""},
{0,0,0,0,-2,7,"[SiS SiS SiS ]","",""},
{5,0,-1,-1,-2,-1,"55x","55x",""},
{0,0,0,0,-2,8,"[TransmetaCPU]","TMT","Transmeta"},
{0,0,0,0,-2,8,"[GenuineTMx86]","TMT","Transmeta"},
{5,4,-1,-1,-2,-1,"Crusoe","Crusoe","TM3x00"},
{0,0,0,0,-2,8,"[CentaurHauls]","IDT","IDT or VIA"},
{5,4,-1,-1,-2,-1,"C6","C6",""},
{8,99,-1,-1,-2,-1,"C2","C2",""},
{9,99,-1,-1,-2,-1,"C3","C3",""},
{0,0,0,0,-2,9,"[Geode by NSC]","NSC","National Semiconductor "},
{5,4,-1,-1,-2,-1,"GX1","GX1","GXLV"},
{5,5,-1,-1,-2,-1,"GX2","GX2",""},
{0,0,0,0,-2,-1,"","",""}, // Terminator
};
AMD_PERFTBL perfTbl[] = {
{256, 950, 1100},
{256, 1000, 1200},
{256, 1100, 1300},
{256, 1200, 1400},
{256, 1300, 1500},
{256, 1333, 1500},
{256, 1400, 1600},
{256, 1467, 1700},
{256, 1500, 1800},
{256, 1533, 1800},
{256, 1600, 1900},
{256, 1667, 2000},
{256, 1733, 2100},
{256, 1800, 2200},
{256, 2000, 2400},
{256, 2083, 2600},
{256, 2133, 2600},
{256, 2167, 2700},
{256, 2250, 2800},
{512, 1300, 1700},
{512, 1400, 1800},
{512, 1467, 1900},
{512, 1533, 2000},
{512, 1600, 2100},
{512, 1667, 2200},
{512, 1800, 2400},
{512, 1833, 2500},
{512, 1867, 2500},
{512, 1917, 2600},
{512, 2000, 2600},
{512, 2083, 2800},
{512, 2100, 3000},
{512, 2133, 2800},
{512, 2167, 3000},
{512, 2200, 3200}
};
_cacheCodes cacheCodes[] = {
{0x06, 8, 0,32, 0, 0, 0},
{0x08, 16, 0,32, 0, 0, 0},
{0x0A, 0, 8,32, 0, 0, 0},
{0x0C, 0,16,32, 0, 0, 0},
{0x10, 0,16,32, 0, 0, 0},
{0x15, 0,16,32, 0, 0, 0},
{0x1A, 0,96,96, 0, 0, 0},
{0x22, 0, 0,64, 0, 0, 512},
{0x23, 0, 0,64, 0, 0,1024},
{0x25, 0, 0,64, 0, 0,2048},
{0x29, 0, 0,64, 0, 0,4096},
{0x2c, 0,32,64, 0, 0, 0},
{0x30, 32, 0,64, 0, 0, 0},
{0x39, 0, 0,64, 0, 128, 0},
{0x3B, 0, 0,64, 0, 128, 0},
{0x3C, 0, 0,64, 0, 256, 0},
{0x41, 0, 0,32, 0, 128, 0},
{0x42, 0, 0,32, 0, 256, 0},
{0x43, 0, 0,32, 0, 512, 0},
{0x44, 0, 0,32, 0,1024, 0},
{0x45, 0, 0,32, 0,2048, 0},
{0x50, 4, 0, 0, 0, 0, 0},
{0x51, 4, 0, 0, 0, 0, 0},
{0x52, 4, 0, 0, 0, 0, 0},
{0x5b, 0, 4, 0, 0, 0, 0},
{0x5c, 0, 4, 0, 0, 0, 0},
{0x5d, 0, 4, 0, 0, 0, 0},
{0x60, 0,16, 0, 0, 0, 0},
{0x66, 0, 8,64, 0, 0, 0},
{0x67, 0,16,64, 0, 0, 0},
{0x68, 0,32,64, 0, 0, 0},
{0x77, 16, 0,64, 0, 0, 0},
{0x78, 0, 0,64, 0,1024, 0},
{0x79, 0, 0,64, 0, 128, 0},
{0x7a, 0, 0,64, 0, 256, 0},
{0x7b, 0, 0,64, 0, 512, 0},
{0x7c, 0, 0,64, 0,1024, 0},
{0x7d, 0, 0,64, 0,2048, 0},
{0x7e, 0, 0,64, 0, 256, 0},
{0x7f, 0, 0,64, 0, 512, 0},
{0x80, 0, 0,16, 0, 128, 0},
{0x81, 0, 0,32, 0, 128, 0},
{0x82, 0, 0,32, 0, 256, 0},
{0x83, 0, 0,32, 0, 512, 0},
{0x84, 0, 0,32, 0,1024, 0},
{0x85, 0, 0,32, 0,2048, 0},
{0x86, 0, 0,64, 0, 512, 0},
{0x87, 0, 0,32, 0,1024, 0},
{0x88, 0, 0,64, 0, 0,2048}, // IA-64 Only
{0x89, 0, 0,64, 0, 0,4096},
{0x8a, 0, 0,64, 0, 0,8192},
{0x8d, 0, 0,128, 0, 0,4096},
{0xFF, 0, 0, 0, 0, 0, 0}
};