Memtest86 is considered by the majority of the hardware testing community the number one application when it comes to defective RAM sticks. The answer to the question regarding the working state of the installed memory modules comes fast with Memtest86 and that is what matters the most besides the certainty of the verdict.
There are many good approaches for testing memory. However, many tests simply throw some patterns at memory without much thought or knowledge of memory architecture or how errors can best be detected. This works fine for hard memory failures but does little to find intermittent errors. BIOS based memory tests are useless for finding intermittent memory errors.
RAM chips consist of a large array of tightly packed memory cells, one for each bit of data. The vast majority of the intermittent failures are a result of interaction between these memory cells. Often writing a memory cell can cause one of the adjacent cells to be written with the same data. An effective memory test attempts to test for this condition. Therefore, an ideal strategy for testing memory would be the following:
- Write a cell with a zero.
- Write all of the adjacent cells with a one, one or more times.
- Check that the first cell still has a zero.
It should be obvious that this strategy requires an exact knowledge of how the memory cells are laid out on the chip. In addition there are a never ending number of possible chip layouts for different chip types and manufacturers making this strategy impractical. However, there are testing algorithms that can approximate this ideal and MemTest86 does just this.
– Added new file blacklist.cfg that contains a list of baseboards that have known MemTest86 boot issues
– Added ‘CONSOLEMODE’ config file parameter for specifying the mode of the UEFI console. Setting the console mode determines the resolution of the console (with 0 being the minimum supported resolution of 80×25)
– Added ‘BITFADESECS’ config file parameter for specifying the sleep interval in the Bit Fade test (Test 10)
– Added language support for Catalan
– Updated ImageUSB to version 1.3
– Fixed 128-byte alignment issues in the random library
– Errors detected in Test 12 (128-bit Random Number Sequence Test) are now logged as 128-bit values
– HTML test report now includes if ECC polling was enabled
– Fixed text artifacts appearing in the testing screen due to the text being too long
– Fixed memory size being incorrectly reported due to including non-RAM memory ranges (eg. NVM, MMIO, Reserved)
– Fixed main menu screen being too small due to resolution being set too high
– Added preliminary ECC Injection support for Intel Xeon E5 chipsets
– Added preliminary ECC Injection support for Intel D-1500 chipsets
– Added ECC detection support for different variations of Intel Kaby Lake chipset
– Added support for retrieving AMD Ryzen CPU info, including base and turbo clock speeds
– Improved the performance and robustness of measuring CPU base/turbo speeds for AMD chipsets
– Updated JEDEC RAM manufacturer ID list
– Added reset mechanism for Intel ICH SMBus when timeout occurs while accessing SPD registers
– Fixed DDR4 SPD data not being read for PIIX4 SMBus controllers