Memtest86
Encyclopedia
Memtest86 and Memtest86+ are open source memory test software programs designed to test and stress test
Stress testing (software)
In software testing, stress testing refers to tests that determine the robustness of software by testing beyond the limits of normal operation. Stress testing is particularly important for "mission critical" software, but is used for all types of software...

 an x86 architecture
X86 architecture
The term x86 refers to a family of instruction set architectures based on the Intel 8086 CPU. The 8086 was launched in 1978 as a fully 16-bit extension of Intel's 8-bit based 8080 microprocessor and also introduced segmentation to overcome the 16-bit addressing barrier of such designs...

 computer's random access memory (RAM) for errors. Each tries to verify that the RAM will accept and correctly retain arbitrary patterns of data written to it, and that there are no errors where different bits of memory interact, and there are no conflicts between memory addresses.

Description

There are two versions (or development streams) of Memtest86. The original is simply known as Memtest86. The other, known as Memtest86+, is a development fork of the original Memtest86 (see history). They both have almost identical screen appearance.

These programs work with old obsolete 80386 and 80486 computers and also the latest, but now obsolete, P4 and beyond chipsets. They are updated from time to time to support newer chipsets.

Memtest86 is designed to run as a stand-alone, self-contained program from a bootable
Booting
In computing, booting is a process that begins when a user turns on a computer system and prepares the computer to perform its normal operations. On modern computers, this typically involves loading and starting an operating system. The boot sequence is the initial set of operations that the...

 floppy disk
Floppy disk
A floppy disk is a disk storage medium composed of a disk of thin and flexible magnetic storage medium, sealed in a rectangular plastic carrier lined with fabric that removes dust particles...

, CD-ROM
CD-ROM
A CD-ROM is a pre-pressed compact disc that contains data accessible to, but not writable by, a computer for data storage and music playback. The 1985 “Yellow Book” standard developed by Sony and Philips adapted the format to hold any form of binary data....

, USB Drive
USB flash drive
A flash drive is a data storage device that consists of flash memory with an integrated Universal Serial Bus interface. flash drives are typically removable and rewritable, and physically much smaller than a floppy disk. Most weigh less than 30 g...

, or from a suitable bootloader without an operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 present. This is because the program must directly control the hardware being tested and leave as much of the RAM space as possible for examination. It is also a quick and convenient way to start the program, and avoids running a complex operating system/application which could be endangered by hardware with memory problems. (For example, a hard disk file system can be corrupted by writing erroneous data from damaged RAM.)

Memtest86's testing is very comprehensive so it can find otherwise hidden problems on machines that appear to work normally. With many chipset
Chipset
A chipset, PC chipset, or chip set refers to a group of integrated circuits, or chips, that are designed to work together. They are usually marketed as a single product.- Computers :...

s, Memtest86 allows counting of failures even in error-correcting ECC DRAM (without special handling, error correcting memory circuits can mask problems with the underlying memory chips).

Running one complete pass of the program (executing all the selected tests one time) can take from a few minutes up to a few hours, depending on the amount and speed of memory installed, and the CPU
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

 speed. Some errors are so subtle that they don't occur on each pass; errors are more likely to be revealed after running many passes over an extended period. This is because some tests use slightly different data each pass, and errors may appear after heat builds up from extended operation. Thus the program will run continuously until the user reboots.

Distribution

Traditionally, the programs were made available on the Internet as small downloadable diskette image files, and included a small Windows program to make the floppy disk. Under Linux, the standard dd
Dd (Unix)
In computing, dd is a common Unix program whose primary purpose is the low-level copying and conversion of raw data. According to the manual page for Version 7 Unix, it will "convert and copy a file". It is used to copy a specified number of bytes or blocks, performing on-the-fly byte order...

 utility command is used to make the floppy disk. The floppy can then be booted directly on the test computer.

This mode has become obsolete as floppy disks have become obsolete, so distribution now includes a USB image and a bootable CD iso image
ISO image
An ISO image is an archive file of an optical disc, composed of the data contents of every written sector of an optical disc, including the optical disc file system...

 which the user must burn to CDROM before using. The easiest way for a beginner to access the programs may be as part of a bootable LiveCD. Popular Linux distributions such as Knoppix
Knoppix
Knoppix, or KNOPPIX , is an operating system based on Debian designed to be run directly from a CD / DVD or a USB key , one of the first of its kind for any operating system. Knoppix was developed by Linux consultant Klaus Knopper. When starting a program, it is loaded from the removable medium...

 and Ubuntu
Ubuntu (operating system)
Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...

 offer an option when the CD starts to run Memtest immediately (instead of booting Linux). Memtest86 and Memtest86+ are included in rescue sets of utilities, such as the Ultimate Boot CD which contains both.

Additionally, some high-end computer motherboards come with MemTest86 integrated into the BIOS
BIOS
In IBM PC compatible computers, the basic input/output system , also known as the System BIOS or ROM BIOS , is a de facto standard defining a firmware interface....

. The user would simply have to press a certain key during boot-up and MemTest86 would run without a boot disk. (One example of this is the Biostar
Biostar
Biostar or Biostar Microtech International Corp, is a motherboard manufacturer based in Taiwan, designing and manufacturing of computer hardware products such as motherboards, video cards, barebone computers and industrial PCs, to meet the demands of market development by providing more integrated...

 TPOWER i55 motherboard.)

History

Memtest86 was developed by Chris Brady. After Memtest86 remained at v3.0 (2002 release) for two years, the Memtest86+ fork was created by Samuel Demeulemeester to add support for newer CPUs and chipsets. As of 2009, both are being actively maintained.

Memtest86 is written in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

 and x86 assembly
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...

. The source code is released under the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

 (GPL). The bootloading code was originally derived from Linux 1.2.1
Linux kernel
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....

. Both versions now support current dual- and quad-core-CPUs and the corresponding chipsets. The latest release of Memtest86+ supports Intel-based Macintosh
Macintosh
The Macintosh , or Mac, is a series of several lines of personal computers designed, developed, and marketed by Apple Inc. The first Macintosh was introduced by Apple's then-chairman Steve Jobs on January 24, 1984; it was the first commercially successful personal computer to feature a mouse and a...

 computers.

Starting from Memtest86 2.3 and Memtest86+ 1.60, the program can output a list of bad RAM regions in the format expected by the BadRAM patch for the Linux kernel
Linux kernel
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....

; using this information, a Linux system can reliably use a RAM module even if it has a few bad bits. Grub2 is able to supply this same information to an unpatched kernel, negating the need for the BadRAM patch.

How it works

Memtest86 writes a series of test patterns to most memory address, reads back the data written, and compares it for errors.

The default pass does 9 different tests, varying in access patterns and test data. A tenth test, bit fade, is selectable from the menu. It writes all memory with zeroes, then sleeps for 90 minutes before checking to see if bits have changed (perhaps because of refresh problems). This is repeated with all ones for a total time of 3 hours per pass.

Memory cache (such as cache on board the CPU chip) is not disabled. However, access patterns are designed to keep most cache organizations flushed so that memory accesses are actually seen to the RAM.

Many chipsets can report RAM speeds and timings via SPD (Serial Presence Detect
Serial Presence Detect
Serial presence detect refers to a standardized way to automatically access information about a computer memory module. Earlier 72-pin SIMMs included 5 pins which provided 5 bits of parallel presence detect data, but the 168-pin DIMM standard changed to a serial presence detect to encode much...

) or EPP (Enhanced Performance Profiles), and some even support changing the expected memory speed. If the expected memory speed is overclocked, Memtest86 can test that memory performance is error-free with these faster settings.

Some hardware is able to report the "PAT status" (PAT: enabled or PAT: disabled). This is a reference to Intel Performance acceleration technology
Performance acceleration technology
The Intel Performance Acceleration Technology is technology built on to Intel i875 Canterwood mainboards and other Pentium 4 based motherboards that based on the Intel D875PBZ reference board...

; there may be BIOS
BIOS
In IBM PC compatible computers, the basic input/output system , also known as the System BIOS or ROM BIOS , is a de facto standard defining a firmware interface....

 settings which affect this aspect of memory timing.

This information, if available to the program, can be displayed via a menu option.

Known problems

  • Memtest86 3.5 is known to fail usually on computers with of installed memory. (The failure manifests as a spontaneous system reboot soon after the program starts running.)
  • The multi-core version of Memtest86 3.5 has been observed to not function on systems using AMD or Intel Quad-core CPUs.
  • Version 3.5a corrects a bug in 3.5 that prevented testing more than of memory. Version 3.5a now works with up to of memory.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK