Page 1 of 1
RAM Testing Software
Posted: Mon Jan 08, 2007 10:46 am
by Ken Fox
I've used Memtest86 and Memtest86+ over the years, but even the latter program has not been updated for a long time. Is there another, good, free utility out there for testing the newer sorts of DDR2 memory, not to mention the cache memory in the processors themselves?
Re: RAM Testing Software
Posted: Mon Jan 08, 2007 1:26 pm
by rkawakami
My understanding is that memtest86+ and other programs like it, will test ANY memory technology installed in a computer system simply because it (the testing program) executes a series of address sequences and data patterns which attempts to test each bit of memory. I'm not aware of any sort of specialized handling of FPM, EDO, SDR, DDR, or DDR2 being needed when the memory under test is being controlled by the computer's chipset. Yes, you need totally different patterns and timings if you are testing memory with automated test equipment (ATE), but at that level, you are talking directly to the memory and not the chipset. I could say that even with the various tests that memtest86+ runs on the memory, it is still not a guarantee that EVERY worst-case condition is being checked. For that to occur, you need to know the exact architecture of the memory array and how each bit is being stored, relative to its neighbors (what we in the industry call "data scramble") and lots of time.
Memory testing is always a compromise between fault coverage and the time needed to perform the tests. There exists a known test pattern called "Gallop" (aka GALPAT or "ping pong") which exercises the memory by using each address in memory as a "base" and then alternately goes out to every other address in the array and back to the base address, reading the data from each location. The total number of test cycles is "n-squared", where "n" is the number of addresses. As an example, assume we have a 256MB SDR PC100 memory. That's 67,108,864 addresses (assume 32-bit words). PC100 memory uses a cycle time of 10ns. I'm going to ignore CAS latency cycles and simply assume every memory cycle is a read or write. The total test time required for a GALPAT on that memory is 521... days (67,108,864 ^ 2 * 10ns). A standard compromise is to run what's called the "Moving Inversion" pattern. This type of pattern is a several-hundred "n" type, a somewhat more reasonable test time (less than an hour for that sized memory).
As far as testing the cache memory in the CPU, I believe that PC Doctor, Sandra and other testing suites like those, have CPU tests designed to perform that type of function.
(edit: Corrected Moving Inversion description; it's not an n^(3/2) pattern.)