CHKCPU comes in two flavors, a DOS version and a Win32 console mode version. I've named the Win32 version CHKCPU32 to distinguish it from the DOS version. Both versions give approximately the same text-based output.
You can download both programs here and in each zip a text-file is included with more information about the program and the changes I've made in this revision.
DOS version: CHKCPU v1.18
Win32 version: CHKCPU32 v2.06
Both programs are dated 10/10/2009, have the same update status regarding the CPU model data, and they are both freeware.
| Feature | CHKCPU | CHKCPU32 | Remarks |
|---|---|---|---|
| Support for DOS | Yes | No | |
| Support for Windows | Yes | Yes, Win95 or later | CHKCPU32 has better speed indication accuracy under WinNT4 and later Windows versions. |
| CPU support | 386 and up | 586 and up | Support for NexGen and UMC CPUs has been dropped from CHKCPU32. Use CHKCPU if 386/486, NexGen, or Vortex86 support is needed. |
| Multiplier/FSB support | Yes, but only in Real mode DOS | Not yet | Will be added in a later version of CHKCPU32. |
| Dual/Multi CPU support | No | Yes | CHKCPU32 shows the processor topology in a system on 3 levels: Physical CPU count, Core count per CPU, Total number of Threads. |
| XML output | No | Yes | CHKCPU32 can display various CPU details in XML format. Intended for easy parsing of specific CPU data for use in another program. |
| L1 Cache Mode indication | Yes | No | As this indication lost its meaning on modern Pentium class CPUs, it has been dropped from CHKCPU32. |
To make using the text-based Chkcpu(32) easier under Windows, I have packed a batch file in the zip of both programs. This batch-file allows a quick check on the CPU details, without opening a command window and typing the required commands. Just unzip the CHKCPU(32).BAT and CHKCPU(32).EXE files in a folder and double-click on the CHKCPU(32).BAT file in explorer.
CPU Identification utility v1.18 (c) 1997-2009 Jan Steunebrink
覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧
CPU Vendor and Model: AMD K6-III+ 450/475/500/550
Internal CPU speed : 601.2 MHz (using internal Time Stamp Counter)
Clock Multiplier : 6.0
Bus clock speed : 100.2 MHz
CPU-ID Vendor string: AuthenticAMD
CPU-ID Name string : AMD-K6(tm)-III Processor
CPU-ID Signature : 0005D0
|||||+- Stepping or sub-model no.
||||+- Model: Indicates CPU Model and 486 L1 cache mode
|||+- Family: 4=486, Am5x86, Cx5x86
||| 5=Pentium, Nx586, Cx6x86, K5/K6, C6, mP6
||| 6=PentiumPro/II/III, CxMII/III, Athlon, C3
||| F=Pentium4, Athlon64
||+- Type: 0=Standard, 1=Overdrive, 2=2nd Dual Pentium
|+- Ext. Model: Extends the Base Model to an 8-bit value
+- Ext. Family: Extends the Base Family value
Current CPU mode : Real
Internal (L1) cache : Enabled in Write-Back mode
|
On my Celeron M laptop, running Windows Vista, CHKCPU32 /V shows:
CPU Identification utility v2.06 (c) 1997-2009 Jan Steunebrink
覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧
CPU Vendor and Model: Intel Celeron M 410/420/423/430 C0-step
Internal CPU speed : 1729.0 MHz
System CPU count : 1 Physical CPU(s), 1 Core(s) per CPU, 1 Thread(s)
CPU-ID Vendor string: GenuineIntel
CPU-ID Name string : Intel(R) Celeron(R) M CPU 430 @ 1.73GHz
CPU-ID Signature : 0006E8
CPU Features : Floating-Point Unit on chip : Yes
Time Stamp Counter : Yes
Enhanced SpeedStep Technology: No
Hyper-Threading Technology : No
Execute Disable protection : Yes
64-bit support : No
Virtualization Technology : No
Instr set extensions: MMX, SSE, SSE2, SSE3
Size of L1 cache : 64 KB
Integrated L2 cache : 1024 KB
Integrated L3 cache : None
|
CPU Identification utility v2.06 (c) 1997-2009 Jan Steunebrink
覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧
CPU Vendor and Model: AMD Athlon 64 X2 3800+-4600+ E4-rev.
Internal CPU speed : 2202.8 MHz
System CPU count : 1 Physical CPU(s), 2 Core(s) per CPU, 2 Thread(s)
CPU-ID Vendor string: AuthenticAMD
CPU-ID Name string : AMD Athlon(tm) 64 X2 Dual Core Processor 4200+
CPU-ID Signature : 020FB1
CPU Features : Floating-Point Unit on chip : Yes
Time Stamp Counter : Yes
Cool'n'Quiet support : Yes
Hyper-Threading Technology : No
Execute Disable protection : Yes
64-bit support : Yes
Virtualization Technology : No
Instr set extensions: MMX, 3DNow!, SSE, SSE2, SSE3
Size of L1 cache : 2 x 128 KB
Integrated L2 cache : 2 x 512 KB
Integrated L3 cache : None
|
CHKCPU32 is meant to be used on 586/Pentium or higher CPUs only. CPUs which do not know the CPUID instruction are not supported by CHKCPU32. In addition, CHKCPU32 relies solely on the TSC for CPU speed measurement.
CHKCPU32 recognizes CPUs from Intel, AMD, Cyrix/IBM, IDT, VIA, Rise, and Transmeta.
Most CPUs provide data on which Clock multiplier setting they are running.
CHKCPU will display the Clock multiplier when available, and also calculate and displays the Bus clock speed in this case.
Note that the classic Pentiums, like the Intel Pentium I, Pentium MMX, and AMD K6 do not provide any clock multiplier data.
For Intel CPUs the internal speed equals the rating. So a Pentium 200 will run internally at 200 MHz. (66.6 x 3)
For AMD, Cyrix, and Rise CPUs the internal speed can be lower than the PR rating due newer and more efficient design.
For the K6-2 and later AMD CPUs upto 1400MHz, the internal speed equals the rating but modern CPUs use a performance figure as rating.
CHKCPU measures the CPU speed by accurately timing the execution of a bunch of slow 'Divide' instructions.
For Pentium class CPUs however, the internal Time Stamp Counter (TSC) is used whenever possible to further improve the accuracy of the speed measurement.
A message behind the CPU speed display indicates if the TSC is used.
As using the TSC would crash CHKCPU when the CPU is in 'Virtual mode', the CPU speed measurement switches back to the (less accurate) instruction timing method when the CPU is not in 'Real or Protected mode'.
CHKCPU32 measures the CPU speed by accurately timing the increment of the CPU's internal Time Stamp Counter (TSC). As a timebase, the Windows own PerformanceCounter is used which in turn is based on one of the motherboard's hardware timers.
CHKCPU32 only:
The 'System CPU count' display indicates the hardware topology of enabled logical processors in the system on 3 levels:
1) Number of physical CPU packages
2) Number of Cores per CPU package
3) Total number of logical processors (=Threads).
Without Hyper-Threading, the number of logical processors is equal to the number of Cores per CPU times the number of physical CPU packages.
But with Hyper-Threading enabled, the indicated number of logical processors is double the number of physical cores in a system.
The Pentium and higher CPU families normally operate their L1 cache in Write-Back mode.
Exceptions are: the Nx586, the Intel Pentium 63/83 ODP (P24T) and the Cyrix 6x86/6x86MX/MII.
The Nx586 has only Write-Through mode and is indicated as such.
The P24T can operate in either the Write-Through or Write-Back mode. For this CPU, CHKCPU uses a special routine to detect the difference.
The Cyrix 6x86 series usually operates in Write-Back mode but can be switched to Write-Through mode by enabling CR0 bit 29 (NW - No Write-back). CHKCPU checks this bit and displays the L1 cache mode accordingly.
For all other Pentium class CPUs, CHKCPU assumes Write-Back mode.