CPU Test |

The CPU test exercises and verifies a wide range of CPU instructions, at user specified loads. The user selectable sub-categories of the CPU test are:

• | General purpose instructions (x86)

• | Floating Point Unit (FPU) instructions (x87)

• | CPU extension instructions (x86 extensions).

The specific extension instructions may be selected: MMX, 3DNow!, SSE, SSE2, SSE3, SSE4.1, SSE4.2 and SSE4a.

• | Prime number test

• | Maximum heat test

The numbers displayed in the test window for this test represent how many millions of CPU operations have been performed and verified. Each different math’s test is run for half a second. After all tests have been run the cycle count is incremented. The duty cycle and the CPU speed determine how many operations can be processed during the half second period. Note however that if only the Maximum heat test is selected, then the duty cycle is set to 100% and a single cycle is defined to be 1 trillion CPU operations.

By default, a CPU test is run on each CPU core. The number of CPU tests running a particular sub-category is shown in the test window in the "Threads" column.

The sub-categories of this test are described below.

General purpose instructions

This test exercises and verifies correct operation of CPU instructions from the following groups:

• | Integer mathematics (e.g. add, subtract, multiply and divide)

• | Data transfer instructions (e.g. pushing/popping data to/from the stack)

• | Bitwise logical instructions (e.g. bitwise and/or/xor)

• | Shift and rotate instructions (e.g. shift data left x number of bits)

• | Logical instructions (e.g. equals)

• | Control transfer instructions (e.g. jump on x greater than y)

• | String instructions (eg. copy a text string)

Known and random data sets are used to exercise and verify correct operation. On 32-bit systems, 32-bit data sets are used. On 64-bit systems, 64-bit data sets are used. The random numbers are generated regularly to provide a larger data set, as well as ensure that the CPU caches overflow and that this mechanism is tested.

Floating Point Unit (FPU) instructions

This test exercises and verifies correct operation of CPU instructions from the following groups:

• | Floating Point math (e.g. add, subtract, multiply and divide)

• | Transcendental's (e.g. sin, cos)

• | Load constants (e.g. load Pi)

Known and random data sets are used to exercise and verify correct operation. On 32-bit systems, 32-bit floating point data sets are used. On 64-bit systems, 64-bit floating point data sets are used. The random numbers are generated regularly to provide a larger data set, as well as ensure that the CPU caches overflow and that this mechanism is tested.

Extension instructions (x86 extensions)

This test exercises extensions to the x86 CPU instruction set for a variety of applications, such as multimedia.

• | 3DNow!: This test exercises and verifies correct operation of CPU 3DNow! instructions, including a sample of moving 3DNow! registers, adding, subtracting, and multiplying. Known and random data sets are used to exercise and verify correct operation. Data sets are pairs of 32-bit floats (eg. x,y), where x and y are 32-bit floats.

• | MMX: As above, but for MMX instructions. Instructions include moving MMX registers, adding, subtracting, and multiplying. Data set: 64-bit data sets are used.

• | SSE : As above, but for SSE instructions. Instructions include moving SSE registers, adding, subtracting, and multiplying. Data set: groups of 4 x 32-bit floats (e.g. a,b,c,d) where a,b,c and d are 32-bit floats.

• | SSE2: As for the SSE test, but for SSE2 instructions. Data set: pairs of 64-bit floats (e.g. x,y) where x,y are 64-bit floats.

• | SSE3: As for the SSE2 test, but for SSE3 instructions. Data set: pairs of 64-bit floats.

• | SSE4.1: As for the SSE3 test, but for SSE4.1. Instructions include a sample of moving registers and multiplication. Data set: pairs of 64-bit integers.

• | SSE4.2: As for the SSE4.1 test, but for SSE4.2 instructions. Instructions include CRC helper functions. Data set: pairs of 32-bit integers.

• | SSE4a: As for the SSE4.1 test, but for SSE4.a instructions. Instructions include data extraction functions. Data set: pairs of 64-bit unsigned integers.

Notes:

1. | MMX stand for "Multimedia Extensions".

2. | SSE stand for "Streaming SIMD extensions".

3. | SIMD stands for "Single Instruction Multiple Data."

4. | Tests are only performed if the CPU supports that test. For example, SSE3 tests will only be performed if the CPU supports SSE3.

5. | Known and random data sets are used to exercise and verify correct operation

6. | The random test data is generated regularly to provide a larger data set, as well as ensure that the CPU caches overflow and that this mechanism is tested.

Prime number

This test exercises and verifies correct operation of CPU through the use of a prime number generation algorithm.

Maximum heat

Based on PassMark Software testing of a set of CPU algorithms for different systems, a test has been produced that aims to generate the highest CPU temperature possible by BurnInTest. This test is aimed at checking that the cooling system is capable of doing its job with the system CPU under extreme load, especially when the CPU has been overclocked.

Notes:

Some CPU operation tests are only supported in the 32-bit version of BurnInTest. These are: 3DNow!, MMX, Push/Pop stack operations, Transcendental's and Load constants.