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.27.1
Win32 version: CHKCPU32 v2.15
Both programs have the same update status regarding the CPU model data, and they are both freeware.
Feature | CHKCPU | CHKCPU32 | Remarks |
---|---|---|---|
Support for DOS | Yes | No | CHKCPU32 is the 32-bit successor of the 16-bit CHKCPU DOS version. |
Support for Windows | Yes, but only 32-bit Windows | Yes, any 32-bit or 64-bit Windows version | CHKCPU32 has better speed indication accuracy under WinNT4 and later Windows versions. CHKCPU32 is 64-bit Windows aware and makes use of additional CPU Topology support of 64-bit Windows. |
CPU support | 8086/8088 and up | 586 and up | Support for NexGen and UMC CPUs has been dropped from CHKCPU32. Use CHKCPU if 8086/8088, 80286, 386, 486, NexGen, or Vortex86 support is needed. |
Multiplier/FSB support | Yes | No | For most CPUs, CHKCPU will display the multiplier and busspeed in Real mode DOS only. |
Multi Core/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 logical processors (=Threads). Note: As with any Win32 process, CHKCPU32 is limited to 32 Threads under 32-bit Windows. Under 64-bit Windows however, CHKCPU32 is able to detect up to 256 logical processors. |
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.27.1 (c) 1997-2022 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 |
Except for the /I switch, CHKCPU32 supports the same switches, adds an /X switch for the XML mode, and uses the /R switch for another purpose:
CPU Identification utility v2.15 (c) 1997-2022 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.15 (c) 1997-2022 Jan Steunebrink ------------------------------------------------------------------------------ CPU Vendor and Model: AMD Ryzen 5 3600/3600X Six-Core B0-rev. Internal CPU speed : 3599.9 MHz System CPU count : 1 Physical CPU(s), 6 Core(s) per CPU, 12 Thread(s) CPU-ID Vendor string: AuthenticAMD CPU-ID Name string : AMD Ryzen 5 3600 6-Core Processor CPU-ID Signature : 870F10 CPU Features : Floating-Point Unit on chip : Yes Time Stamp Counter : Yes Cool'n'Quiet support : Yes Hyper-Threading Technology : Yes Execute Disable protection : Yes 64-bit support : Yes Virtualization Technology : Yes Instr set extensions: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, SSE4A, AES, AVX, AVX2, F16C, FMA3, SHA Size of L1 cache : 6 x 64 KB Integrated L2 cache : 6 x 512 KB Integrated L3 cache : 32768 KB |
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.
When the /R switch is used, the displayed CPU speed is a value measured by Windows early during the boot process and stored in the Registry. This value can therefore deviate from the actual CPU speed when running CHKCPU32.
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), the Cyrix 6x86/6x86MX/MII, and the DMP Vortex86.
The Nx586 and Vortex86 have only Write-Through mode and are 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). (Note that the Cyrix MediaGX/GXm has the definition of this NW bit reversed and on this model it is named NW - No Write-Through.) CHKCPU checks this NW bit and displays the L1 cache mode accordingly.
For all other Pentium class CPUs, CHKCPU assumes Write-Back mode.