home *** CD-ROM | disk | FTP | other *** search
/ PC User 1997 April / PCU_APR_97.ISO / utils / cpu / cpuinfo / readme32.txt < prev   
Encoding:
Text File  |  1995-12-18  |  6.5 KB  |  144 lines

  1. ReadMe32.txt----------------------------------------------------
  2.  
  3.                   32-bit DLL and Test Program
  4.  
  5. Contents:
  6.     
  7.     o EXECUTE\CPUINF32.DLL    -- 32-bit CPUINFO DLL
  8.     o EXECUTE\TSTDLL32.EXE    -- Test Program for CPUINF32.DLL
  9.     o SOURCE\*.*              -- Source Files for the DLLs, the
  10.                                    test programs, and the DOS
  11.                                    code
  12.  
  13. Installation:
  14.  
  15.  Copy both the TSTDLL32.EXE file and the CPUINF32.DLL file to
  16.  the same directory. Execute the TSTDLL32.EXE program.
  17.  
  18.  The DLL does not have to be placed in the same directory, but
  19.  if it is not placed in the same directory that the program
  20.  is executed from, the DLL must be pointed to by the PATH.
  21.  Otherwise the Windows* will not know where to find the file.
  22.  
  23.  
  24. OVERVIEW
  25.  
  26.  TSTDLL32 is a 32-bit MS-Windows* test program for the CPUINF32
  27.  DLL. TSTDLL32 requires at least an Intel386(TM) processor and
  28.  MS-Windows 3.1 with Win32s,Windows 95, or Windows NT. CPUINF32
  29.  contains functions to return the family, type/family/model/
  30.  stepping, feature flags, processor speed, and time stamp
  31.  reading of the host processor. Note that some functions do not
  32.  pertain to all systems. See below for further information.
  33.  
  34.  To determine what type of processor is in the computer, 
  35.  the CPUINF32 DLL uses the standard Intel cpuid assembly code.
  36.  To determine clock speed, the CPUINF32 DLL uses one of two 
  37.  algorithms. 
  38.  
  39.  The first algorithm (for use on systems not supporting the 
  40.  Time Stamp Register) uses the Win32 API call 
  41.  QueryPerformanceCounter() to determine the amount 
  42.  of time taken to run a specified set of instructions. The 
  43.  speed is then calculated based on the number of cycles run 
  44.  and the number of microseconds it took to run them. This 
  45.  algorithm is basically a very crude benchmark test.
  46.  
  47.  The second algorithm (for use on systems which do support the
  48.  Time Stamp Register) again utilizes QueryPerformanceCounter(). 
  49.  Instead of using a set number of instructions to determine the
  50.  number of cycles executed throughout the test, this algorithm 
  51.  simply reads the Time Stamp at the beginning and the end of 
  52.  the test to find how many cycles have passed.
  53.  
  54.  
  55. Test Program Functionality
  56.  
  57.  1. CPU Family - this tests the wincpuid() function in 
  58.       CPUINF32.DLL, and returns the cpu Family (5-Pentium(R)
  59.       processor, 4-i486(TM) processor ...) as a hex number in a
  60.       windows message box.
  61.  
  62.  2. CPU Extensions - this tests the wincpuidext() function in 
  63.       CPUINF32.DLL, and returns the Processor Type/Family/
  64.       Model/Stepping as a hexidecimal number in a windows 
  65.       message box. The processor T/F/M/S are a 16-bit quantity
  66.       returned in the AX register by the CPUID operation.  If 
  67.       CPUID is not supported, only the Family, in bits 11:8,
  68.       are displayed by TSTDLL32.
  69.          AX(15:14) = Reserved
  70.          AX(13:12) = Processor type
  71.          AX(11:8)  = CPU Family
  72.          AX(7:4)   = CPU Model(if CPUID supported)
  73.          AX(3:0)   = Stepping #(if CPUID supported)
  74.  
  75.  3. CPU Speed - this tests the cpuspeed() function in
  76.       CPUINF32.DLL, and returns a FREQ_INFO structure which
  77.       contains the calculated speed of the processor, the
  78.       normalized (to the nearest known processor speed) value
  79.       of the processor, and the number of clock cycles and
  80.       microseconds that elapsed during the test sampling. After
  81.       displaying this information, the user is asked whether
  82.       to proceed with the testing and run 1000 more iterations
  83.       of the test. The results are then displayed
  84.       statistically. This statistical feedback is primarily for
  85.       the user to get information on the precision of the 
  86.       cpuspeed() function. Note- Multiple sampling iterations
  87.       are done within cpuspeed() as well. In most cases, 
  88.       multiple calls to cpuspeed will not increase the
  89.       accuracy of the data. If greater accuracy is necessary
  90.       simply adjust the constants in SPEED.H.
  91.  
  92.  4. CPU Features - this tests the wincpufeatures() function in 
  93.       cpuid32.DLL, and returns the Feature Flags as a 
  94.       hexidecimal number in a windows message box. The Feature
  95.       Flags are a 32-bit quantity returned in the EDX register
  96.       by the CPUID operation.
  97.  
  98.  5. Read Time Stamp - this tests the winstampread() function in
  99.       CPUINF32.DLL. The 64-bit Time Stamp register is currently
  100.       available only on Pentium(R) and Pentium Pro(R)
  101.       processors. All other processors will return all zeroes
  102.       for the time stamp value.
  103.  
  104. 6. Get DLL Version - this tests the getdllversion() function in
  105.       CPUINF32.DLL. It returns an unsigned short. The upper byte
  106.       is the major version and the lower byte is the minor 
  107.       version.
  108.  
  109.     +----------------------------------------------------------+
  110.     | This program has been developed by Intel Corporation.    |
  111.     | You have Intel's permission to incorporate this code     |
  112.     | into your product, royalty free.  Intel has various      |
  113.     | intellectual property rights which it may assert under   |
  114.     | certain circumstances, such as if another manufacturer's |
  115.     | processor mis-identifies itself as being "GenuineIntel"  |
  116.     | when the CPUID instruction is executed.                  |
  117.     |                                                          |
  118.     | Intel specifically disclaims all warranties, express or  |
  119.     | implied, and all liability, including consequential and  |
  120.     | other indirect damages, for the use of this code,        |
  121.     | including liability for infringement of any proprietary  |
  122.     | rights, and including the warranties of merchantability  |
  123.     | and fitness for a particular purpose.  Intel does not    |
  124.     | assume any responsibility for any errors which may       |
  125.     | appear in this code nor any responsibility to update it. |
  126.     +----------------------------------------------------------+
  127.  
  128.   Information in this document is provided in connection with
  129.   Intel products.  Intel assumes no liability whatsoever, 
  130.   including infringement of any patent or copyright, for sale 
  131.   and use of Intel products except as provided in Intel's Terms 
  132.   and Conditions of Sale for such products.
  133.      
  134.   Intel retains the right to make changes to these specifications 
  135.   at any time, without notice.
  136.   
  137.  
  138.   * Other brands and names are the property of their respective
  139.     owners.
  140.   
  141.   Copyright (c) 1995, Intel Corporation.  All rights reserved.
  142.  
  143. ----------------------------------------------------ReadMe32.txt
  144.