CPUSpy - CPUID Database & System Information
18 Jun 05
Written by Andrew Josef Glina for Sinner Computing using MASM32 assembly language.
Most x86 processors support the CPUID instruction which returns data describing the make and model of the CPU. Later processors also support
extended features such as cache details, processor features, design speed and processor name. CPUSpy interrogates your processor and displays this data (if
supported) in a easy to read tabbed format. L1, L2 and L3 cache data is fully broken down as are the processor flags. In addition, CPUSpy can also check
your current CPU speed in MHz, Windows Up-Time, IP address, Window Version and memory status. CPUSpy even can run a test on your cache memory to provide an
easy comparison between various processors or system configurations.
CPUSpy also has an internal database of many common CPUs, supporting most AMD
(tm), Intel (tm) and Transmeta (tm) processors. This can be used to compare between processors features such as bus speed, maximum frequency, cache sizes,
release dates, codename, and transistor count. Interesting facts are also included for most major models. A OS database is also included for comparing past
current and future versions of Windows as well as information on you computers drives.
Processor data can be saved in a HTML report file providing an easy way to extract data from a PC and analyse it later.
Run "Setup.exe" and follow the instructions. To remove CPUSpy, use the "Add/Remove Programs" option in the Control Panel.
CPUSpy upon loading will automatically display your processor type if it is in the database. (If it is not known, then the CPUID numbers only will be
shown. If this is the case then please EMail me your report and I will add it to the database straight away.) A few seconds later (3 being the default)
CPUSpy will display the approximate frequency that you CPU's core is running at. (Time is needed to count the number of clock cycles, with 3 seconds
generally being enough for a accurate number.) What you do next depends on what you want.
N.B. This ReadMe is not intended to explain in full detail what actual results mean. It would take too much space and would probably break several
copyright laws. If you want more detail then we recommend that you visit the CPU manufacturers site. All this file explains is use of the program
The main window displays the core details of the processor.
||This is either the Brand String, the Brand ID text, or data from the internal database depending on what the processor supports.
||This shows the calculated CPU Frequency. It can be continuously updated and its measuring time can be changed on the Settings / Help tab
||This name, if known is extracted from the internal database and is the development name for the processor.
||This text is stored in the processor itself and indicates what company made the CPU.
||Type of processor. For most systems this will be "0" which means that it is a processor intended to be installed by a professional.
||Major processor group
||Minor processor group
||Intel method for differentiating similar featured processors
||This text is stored in the processor itself and indicates the company name for the CPU.
||L1 Data + L1 Instruction/Trace in KB
||Size in KB of L1 Data Cache
||Size in KB of L1 Instruction/Trace Cache. Stores the predicted next instructions.
||Size in KB of L2 Cache. L2 cache forms a higher speed buffer between the CPU core and memory.
||Size in KB of L3 Cache (Most processors do not have L3 Cache)
Flags A & Flags B
Displayed on these pages are the feature flags of the processor. These indicates what features the processor has and what ones are enabled. The flags
on page A (EDX) are supported by most processors in varying degrees, as are the first (ECX) group on page B. However, the extended flags are currently not
supported by Intel processors, and probably will never be.
Cache (L1, L2 & L3)
These pages display detailed information about the make-up of the CPUs cache. They are displayed in the order that the processor reports it. Level 3
Cache data, if any, is prefixed with "L3" in the "Type" section. Pentium CPUs, among others, do not support Cache Data reporting,
however, the CPU database will probably have the L1 data there.
This page provides the ability to manually look up a processor via its CPUID numbers, and also to compare various processors. Currently detailed
information is only available for most AMD (tm), Transmeta (tm) and Intel (tm) processors, but eventually the database will be completed to
include all major x86 processors since the 8086.
When looking for data, it is only necessary to enter in L2 data if there is no other way to differentiate between types. Other than that, looking for a
CPU is simply a matter of selecting the combo boxes from top to bottom and then pressing the "Find" button. If the processor details match then
the description of the model type will be shown beside the "Model" window, and the processor name and code name will be shown at the top. The
database can also be browsed via the Prev / Next buttons. In addition, for most new processors further data is shown in the "Stats" box. It is
important to stress that this data is simply drawn from the database and has no relation to the current processor. The values shown are the maximum
supported, and the date is the first version that was available for the public, not it's first test appearance. (This can be up to a few years difference
in some cases.)
If you wish to go back to the details of the installed processor press the "Reset" button.
Here is shown extended OS details for most Windows version.
Here is shown basic information on all drives.
Settings / Help
This tab shows basic system information such as Windows Version, memory usage, IP address and Windows Uptime. Also on this tab is:
||Shows information about CPUSpy as well as registration information
||Allows you to type in your registration code
||Shows this file
|Freq Measuring Time
||Changes the time period that the CPU frequency is measured over. The CPU frequency is measured using a separated program section (or thread) so this
will not affect operation of the program if it is a large number, it will just take longer to display. The higher the number the more accurate.
|Continuously check Frequency
||Sets CPUSpy to recheck the CPU frequency for as long as CPUSpy is running
||Save all current results to a HTML file for future reference
||Executes the Cache test. See below
The cache test takes approximately six seconds to run and provides a rough picture of the computers ability to buffer memory in its cache. Please note
that this does not in any way test for faults or lack thereof in your cache. It is simply a benchmark. In short, the Cache test runs a manipulating
routine using 12 different size memory blocks and sees how many times it can run the routine in half a second. The higher the number the better the
ability. What you should see is a drop in speed at roughly the size of your various cache levels. (We are most interested in seeing any result to this
test as the intention is to include in later versions the ability to compare test results.)
I hoped to do a major version before 2005 but all I had time for was a few tweaks. It was one of those years. Unfortuntly nothing has changed since
then and CPUSpy is still needing a major revision and time really isn't there. However, if your processor is incorrectly identified please EMail me with
your report and what CPU you have and I will correct it.
CPUSpy started from my confusion over the P4's small L1 cache size and I intended to spend only a day on it. However I got a bit carried away and a
month later I had a program that I decided that I might as well release! (I am still confused incidentally, more later.) While writing CPUSpy I realised
that most programs of this type are not clear with what the numbers actually mean, so I added the database section so people can see what values change
with each processor. However this means a lot of typing and research and it take a while to track down some of the information. Thus, CPUSpy has support
for most AMD, Transmeta and Intel processors and no more.
Since CPUSpy is largely a database I have two version numbers for this program; a version number and a database number. The database number can be
found by looking at CPUSpy's file properties. I try to add to the database every month, but I have been a bit busy lately. The last few versions have been
largely minor updates, but I want to add Cryix / Via chips soon.
I have large plans for this program, but it does depend on the popularity of the program if I actually will do them all. In particular I wish to
increase the testing ability of CPUSpy and have a collection of data stored internally of various processors. For this reason I am very interested in all
report files. When I get enough I will add a "Test" tab to allow comparing of data, possibly using graphics.
|1.01||Improved database browsing and other minor interface improvements
|1.03||OS tab, Improved database browsing
|1.04||Drive tab, HTML report file
Licence and Registration
Permission is given to evaluate CPUSpy for a period of 30 days. After this time you are required to either register or remove CPUSpy. Permission is
given for all forms of distribution, including CD compilations and Websites, providing the ZIP file is unaltered and it is made clear that CPUSpy is a
Shareware program and that registration is required for continued usage. Full terms are on the FAQ page on our website.
CPUSpy can be registered using PayPal, Reg.Net or Mail. For details on the terms of our licenses and of our Buy-Three-Get-All policy please
refer to the FAQ page.
|PayPal $7.50 USD||
|Reg.Net $7.50 USD Bulk deals are also available here.||
|Mail, Cash $7.50 USD or $10 AUD||Postal details in About box
|Mail, Australian Cheque $10 AUD||
|Mail, Non-Australian Cheque $14.95 USD or $19.95 AUD||
|PayPal $100 USD||
|Reg.Net $100 USD||
|Mail, Cash or Cheque $100 USD or $75 AUD||
Postal details in About box
Sinner Computing accepts no liability for this software to the maximum extent allowable by law. Installing this software is the decision of the
installer, and signifies that you agree with this liability statement. Thus, any unintentional damage/loss caused by the use of this software is not in
any way Sinner Computing's responsibility, even if it is Sinner Computing's fault. This includes, but is not limited to, physical damage, or loss of
income/time. If at any time you do not find these conditions agreeable you are required to remove this software.
Advice/insults (on the subject of the program, not the programmer) are always welcome. While Registered
users receive priority support, currently all EMails are responded to as fast as possible. People who EMail can also be added to a newsletter list and
be informed of the newest version. Simply send an EMail with "SpyADD" in the subject. (The
address is at the top of this file and also in the program itself in the "About" window.) To be removed from this list, write an
EMail with "SpyREMOVE" in the subject. Sinner Computing does not give out your EMail address