To obtain the most complete information on x86 processor that will be used to
identify the processor, and measure its clock rate, as well.
The present project resulted in CPU Identifying Tool getting the information
about the x86 processor hardcoded into the CPU itself, as well as measuring its
The most reliable piece of information used to identify the processor is the
one hardcoded into the silicon chip during the manufacturing. It can be
obtained by means of the CPUID instruction. This instruction is accessible on
some models of the 486 processors and later. That is the information the CPU
Identifying Tool gets and grants to the external utility for interpretation
(see CPU Identification Scenarios Interpreter).
To measure the clock rate, the Timestamp Counter is used that is a processor
built-in clock counter. The use of etalon calculations does not fit for this
purpose, since it depends on the system performance as a whole and is very
sensitive to operating system task switching. Using
the Timestamp Counter and a high-accuracy timer makes it possible to measure
the actual clock rate of a CPU even under the multitask operating system (it
was necessary to provide the time measurement and TSC reading during just one
quant of the processor time). This is the approach that was implemented. To
avoid fluctuation noise during multiple clock rate measurements (it was a
requirement, as it was supposed to use the data for Hardware changes tracking),
the measurement result was adjusted according to the etalon clock rate table.
The etalon rates for that table were obtained from the analysis of AMD and
Intel companies' documentation, in which the CPUs of these vendors were