Memtest86 Free Download Page
Available releases:
Notes:
- For installation and usage instructions Click Here
- Version 4.0a is the stable, recommended release for desktop PCs. Version 4.0b is specificly designed for large multi processor servers and has had little exposure.
- Memtest86 is a stand-alone program that does not require or use
any operating system for execution. The version of Windows or Linux being used
is irrelevant for execution. However, you must use Windows or Linux to create
a bootable CD, Floppy or USB key. The Windows and Linux packages are identical
except for the installation methods.
- ISO and USB images include a boot menu that allows selection of the current version
and one or more previous versions.
- Multi-CPU Support! Multi-threaded for parallel testing of memory with up to 16 CPUs
- Works with up to 64Gb of memory
- Supports 32 and 64 bit CPUs
- Supports all memory types (DDR, DDR2, DDR3)
- Installable from all versions of Windows, Mac_OS and Linux
- Corrections in bugfix A:
- Fix for erroneous errors in tests 7 and 8 errors when the number of cores is not a power of 2 (6 and 12 cores).
- Fixed cache detection for newer Intel CPUs
Enhancements in Version 4.0a
- Support for testing with multiple CPUs and cores. All tests except for #11
(Bit Fade) have been multi-threaded. A maximum of 16 CPUs are used for testing.
Multi-threading offers the following advantages:
- Detection of bandwidth sensitive errors - Version 4.0 is able to detect
errors that cannot be found when testing with a single CPU. Some memory
errors only are manifest when memory is being accessed at the highest possible
rates. With a single CPU it is not possible to drive multi-channel memory
controllers at full speed making it impossible to detect some types of errors.
Bandwidth related errors are usually detected with test #7.
- Shorter testing times - Using multiple cores boosts testing speed by 40-60%.
- Accurate memory speed reporting - When optimizing and over-clocking accurate
reporting of the actual memory speed is essential. With only one active CPU the
performance of multi-channel memory controllers cannot be accurately measured.
Single CPU measurements are often significantly less than the actual speed.
- Detection of cache coherency and interaction errors - Multi core CPUs
have logic dedicated to cache coherency and synchronization that is not tested
or exercised when testing with a single CPU. In addition congestion and noise
from overlapping multi-CPU memory references may expose errors that otherwise
cannot be detected.
- Implicit testing of all caches and cores - Although Memtest86 is a memory
diagnostic, it implicitly tests the CPU and all levels of cache. Version 4.0
implicitly tests all CPUs and all caches.
- CPU detection has been completely re-written to use the brand ID string
rather than the cumbersome, difficult to maintain and often out of date
CPUID family information. All new processors will now be correctly
identified without requiring code changes.
- All code related to controller identification, PCI and DMI has been removed.
This may be a controversial decision and was not made lightly. The following
are justifications for the decision:
- Controller identification has nothing to do with actual testing of
memory, the core purpose of Memtest86.
- This code needed to be updated with every new chipset. With the ever
growing number of chipsets it is not possible to keep up with the
changes. The result is that new chipsets are frequently
reported in-correctly. In the authors opinion incorrect information is
worse than no information.
- Probing for chipset information carries the risk of making the program
crash.
- The amount of code involved with controller identification was quite
large, making support more difficult.
Removing this code also had the unfortunate effect of removing reporting of
correctable ECC errors. The code to support ECC was hopelessly intertwined
the controller identification code. A fresh, streamlined implementation of
ECC reporting is planned for a future release.
- A surprising number of conditions existed that potentially cause problems
when testing more than 4 GB of memory. Most if not all of these conditions
have been identified and corrected.
- A number of cases were corrected where not all of memory was being tested.
For most tests the last word of each test block was not being tested. In
addition an error in the paging code was fixed that omitted from testing the
last 256 bytes of each block above 2 GB.
- The information display has been simplified and a number of details that were
not relevant to testing were removed.
- Memory speed measurement has been parallelized for more accurate reporting
for multi channel memory controllers.
- This is a major re-write of the Memtest86 with a large number of minor
bug-fixes and substantial cleanup and re-organization of the code.
- Optimized for high performance servers
- Tests using up to 32 CPUs
- Tests up to 8 TB of memory
Enhancements in Version 4.0b (Server)
- Enable extended addressing to allow for testing of up to 8 TB of memory.
- Increased maximum CPUs from 16 to 32
- Improved spinlock performance to reduce contention
- Improved cpu identification (CPUID) code