7Byte Computers  
Home Support ...
BurnIn64

BurnIn 64 V1.3

Copyright 2004 – 7Byte Computers

I.                  Description of the program:

Burnin64 is a burn-in tool designed for AMD64 architecture to test the major components of computer under Windows For 64-bit Extended Systems(x86-64 platform) environment. It is specifically designed to test CPU(s), Motherboard, Memory and Hard drive(s) with new features of  x86-64 architecture in mind. A summary of BurnIn64 features are:

§        Fully supports AMD64 computing platform(AMD Ahtlon™ 64 and AMD Opteron™ processors up to 8-way)

§        Tests over 4GB of memory

§        Exercises all new registers(R8-R15) available on AMD64 as well as the legacy registers(AX,BX,…)

§        Exercises SSE2 registers with regards to Floating-Points calculations

§        Exercises L1 & L2 caches

§        Exercises Integrated DDR Memory Controller and Memory Bus

§        Exercises Hard Drive(s) as well Windows NTFS file system stability and its communication with the rest of system

§        Logs all errors using Windows Logging Service

§        Reports detailed info of errors occurred including debug dumps

 

Trial Version limitations:

-         Only tests 1 processor

-         Only tests up to 256MB of RAM

-         Only tests 8GB of disk drive(s)

II.               Description of Tests and algorithms used for testing:

Memory:

The program uses two different methods for testing memory. Firstly it allocates 4MB blocks of memory from the bottom to the top of memory. Test the data bus wiring in a memory region by performing a walking 1's test at a fixed address within each block. Then starts filling each block from the bottom to the top with 00000000-bit pattern and verifies it. Repeats the process with all combinations from  00000001 to 11111111.

 

Cache:

Uses the same algorithm as Memory does except instead 4MB blocks it allocates data within cache and repeats write, read and verify process for 1000, in order to check for unwanted in data mutilation.

 

Fast Fourier Transform (FFT):

Performs a fast discrete Fourier transform (FFT) of a complex sequence of, an orderly sine wave, of length 10,000 using radix method. It performs the calculation twice on two identical sets of data and compares the result against each other and a pre-calculated value.

FFT test heavily stresses the CPU, mostly SSE2 (Windows 64-bit uses SSE2 instructions for floating-point calculations instead of x87), and Caches.

 

Complex Matrix:

Performs mathematic and algebraic function on two 50x50 matrices. Firstly, each matrix is filled with identical random data. Then different arithmetic function such as addition, multiplication, subtraction, and division is done on each element of matrices. Afterward determinant, tangles, and “Von Neumann” entropy values of each matrices is calculated and compared with each other for verification. Note, in order to find miscalculations, a different algorithm is used to determine checksum values for each matrix is used; however, the result values should be the same.

This test is purely designed to stress test CPU without interference of RAM, memory bus, and memory controller. The test fits inside CPUs L1 cache, since it has a very small data set and code size. All data and calculations are done with integer data set; thus, it mainly stresses ALU (Arithmetic Logic Unit).

 

Sort Algorithms:

Performs a sort on an array of random integer data using different sort algorithms. Sort algorithms used by this test are:

-         Quick Sort

-         Shell Sort

-         Merge Sort

-         Heap Sort

 

Because of the amount of comparison and data movement in the memory, Sort Algorithms test is heavily stresses the CPU as well as Memory bus(Front Side Bus) and Integrated DDR Memory Controller, specifically the communication between the two.

An array size of 5,000,000 is a reasonable size to burn-in the system.

 

Disk:

Tests disk drive(s) specified simultaneously. It starts by writing 512MB of different bit patterns, duplicating it by copying it over to a new file and repeats the process until it reaches the specified test size or runs out of free space. Then starts to verify the bit pattern written, with its pattern and also against the original bit pattern available in the memory for any mutilation in the process.

III.           Syntax:

burnin64.exe      [Initialization File]

[Initialization File]: The configuration file for setting, if not specified, default is burnin64.ini

 

Initialization file format:

Section: [Main]

Key: Loop

Descirption: Specifies the number of loops/runs for tests.

Default value: ‘1’

 

Section: [Main]

Key: LogFile

Descirption: Specifies the path and filename where log information is saved.

Default value: ‘burnin64.log’

 

Section: [Memory]

Key: Enabled

Description: Enables/Disables Memory test, accepts 1 for Enabled and 0 for Disabled.

Default value: ‘1’

 

Section: [Memory]

Key: CPU

Description: Specifies the ID(s) of processor(s) to be used for Memory test. A thread would run the test on specified CPU(s). A comma is required between the numbers. For example, ‘CPU = 0, 2’, would run the test using CPU0 and CPU2. Note that each CPU uses the memory size specified and thus the total size of memory to be tested is multiplied by the number of CPUs specified. See Example in ‘MemSize; key.

Default Value: ‘0’

 

Section: [Memory]

Key: MemSize

Description: Size of memory to be tested for each CPU. It is recommended, this number to be divisible by 4. If more than one CPU is specified in the ‘CPU’ key the total memory size for this test would be multiplied with number of the CPUs to be tested. For example, ‘CPU = 0, 2’, and ‘MemSize = 2000’, each CPU would use 2000MB of Memory and overall 4000MB of memory will be tested.

Default Value:  ‘4’

 

Section: [Cache]

Key: Enabled

Description: Enables/Disables L1 Cache & L2 Cache tests, accepts 1 for Enabled and 0 for Disabled.

Default value: ‘1’

 

Section: [Cache]

Key: CPU

Description: Specifies CPU(s) to be tested with the Cache tests.

Default value: ‘0’

 

Section: [FFT]

Key: Enabled

Description: Enables/Disables Fast Fourier Transform tests, accepts 1 for Enabled and 0 for Disabled.

Default value: ‘1’

 

Section: [FFT]

Key: CPU

Description: Specifies CPU(s) to be used for Fast Fourier Transform test.

Default value: ‘0’

 

Section: [SortAlgorithms]

Key: Enabled

Description: Enables/Disables QuickSort test, accepts 1 for Enabled and 0 for Disabled.

Default value: ‘1’

 

Section: [SortAlgorithms]

Key: CPU

Description: Specifies CPU(s) to be used for QuickSort test.

Default value: ‘0’

 

Section: [SortAlgorithms]

Key: ArraySize

Description: Specifies number of items and array size to be sorted.

Default value: ‘20000000’

 

Section: [Matrix]

Key: Enabled

Description: Enables/Disables Complex Matrix test, accepts 1 for Enabled and 0 for Disabled.

Default value: ‘1’

 

Section: [Matrix]

Key: CPU

Description: Specifies CPU(s) to be used for Complex Matrix test.

Default value: ‘0’

 

Section: [Disk]

Key: Enabled

Description: Enables/Disables Disk test, accepts 1 for Enabled and 0 for Disabled.

Default value: ‘1’

 

Section: [Disk]

Key: CPU

Description: Specifies CPU(s) to be used for Disk test. If the number of CPUs Specified is less than the number if disk drives to be tested, the program allocates the test on the CPUs specified for the first drive and let Windows schedule a CPU for the rest of disk drives.

Default value: ‘0’

 

Section: [Disk]

Key: Drive

Description: Specifies Drive(s) to be tested, must be separated them with a comma.

Default value: None

 

Section: [Disk]

Key: Size

Description: Specifies size of disk drive(s) to be tested in gigabytes. If the size is more than free space on the drive, it will use all available free space minus 2GB. Thus, it always leaves 2GB free drive for Windows 

Default value: None

 

IV.           A sample ‘burnin64.ini’ file

[Main]

LogFile = "burnin64.log"

 

[Memory]

Enabled = 1

CPU = 0, 2

MemSize = 2048

 

 

[Cache]

Enabled = 1

CPU = 0,1,2,3

 

 

[FFT]

Enabled = 1

CPU = 0,1,2,3

 

[SortAlgorithms]

Enabled = 1

CPU = 2,3

ArraySize = 5000000

 

[Disk]

Enabled = 1

CPU = 0,1

Drive = C,D,E,F

Size = 240