Sunday, January 8, 2012

Windows 7 x64: Bootable RAM Tester

I was running 64-bit Windows 7 with 8 gigabytes (8GB) of memory.  I wanted to test that RAM.  So I looked around for a program that would do the testing.

It appeared that Memtest was still limited to 32-bit Windows (hence its full name, Memtest86).  Another option was Microsoft's Windows Memory Diagnostic (WMD). It appeared both of these would involve burning the program to a CD, booting the computer from that CD, and letting it run for a while, probably hours. I tried that with WMD, but it gave me an error:

Windows Memory Diagnostic (WMD) could not process the system memory map. This occurred because of deficiencies within WMD, not the computer. As a result, not all of the computer memory will be tested. The specific problem was:

The memory map contained ranges that extended above four gigabytes.

Press (C) to continue. Press any other key to exit WMD.
So WMD wasn't good with more than 4GB of RAM. Now I saw that this limitation was indeed stated in the webpage -- down in the Appendix. RTFA. The Appendix also seemed to say that WMD, too, was suited only for x86 (not 64-bit) CPUs.

That could be confusing, because it turned out that 64-bit Windows 7 came with a memory tester built in: Start > Run > mdsched.exe would bring up a dialog titled "Windows Memory Diagnostic" with an option to restart the system and check the memory.  So apparently what I had been playing with previously (above) was a different version of WMD (which was, incidentally, a particularly unfortunate acronym for a piece of computer software).  The built-in variety of WMD would be something that one could build into a monthly or quarterly batch file, to come up automatically.  It would not be useful for a nonbootable system, however, so I continued my search.

That search led me back to Memtest86.  Wikipedia said that I (and, seemingly, Memtest's own webpage) was wrong:  Memtest86 or Memtest86+ would supposedly work with 64-bit CPUs, and Memtest86 version 3.5a or above would supposedly test more than 4GB of RAM.  The Background page at the Memtest86 website said that Version 4.0a did indeed test up to 64GB (or, if using 4.0b Server edition, up to 8TB) of RAM, and that it would also work with 64-bit CPUs and would support up to DDR3.  It came in Windows and Linux versions.  For Windows, it came in USB, floppy, and CD ISO flavors.  Meanwhile, it appeared that Memtest86+ had not been updated in nearly a year, so I stuck with just trying the original (version 4.0a) Memtest86 for now.

I downloaded, burned, and booted the Memtest86 4.0a ISO.  It recognized 7678MB of RAM.  I wasn't sure why it didn't seem to be testing a full 8GB.  I turned away to work on something else.  When I returned, 21 minutes later, it had already finished a first pass and had started a second one.  So it apparently took less than 20 minutes to test 8GB (or so) of RAM.  It reported, "Pass complete, no errors, press Esc to exit."

I decided to test the built-in Windows Memory Diagnostic.  I booted Windows 7 and ran mdsched.exe (above).  Its blue and white design was prettier than that of Memtest86, I thought, but it was far less informative.  It was done with my 8GB of RAM in about 15 minutes.  The main advantages of mdsched.exe seemed to be that it was built-in and could be batched, run by Task Scheduler, or called up at a moment's notice, without any need to load a separate CD.  Because of that last point, the computer could reboot, run mdsched.exe, and then continue seamlessly into Windows without requiring user interaction.



> "I downloaded, burned, and booted the Memtest86 4.0a ISO. It recognized 7678MB of RAM. I wasn't sure why it didn't seem to be testing a full 8GB."

It IS testing the full 8GB. Only, RAM manufacturers naturally take 8GB to mean, 8 × 10^9 bytes (taking advantage of the ambiguity under the old system of prefixes), whereas computer software engineers naturally take 8GB to mean 8 × 2^30 bytes (because this is what it traditionally meant, in the field of computing).

I currently have a problem with Windows 8 x64 Pro, running the built-in "Windows Memory Diagnostic" listed under "Administrative Tools", on a laptop with 8GB of memory. I see the computer manufacturer's logo splash screen but it doesn't progress to the actual diagnostic! I'm going to try removing each of the two SODIMMs in turns and running the diagnostic again, to see if this helps me identify the source of the problem.


Update: tested each stick of RAM individually (both have identical manufacturer, product code and timings; and both were manufactured at almost the same time). Both (4GB each) were reported by Windows Memory Diagnostic Tools to be working. But with both in the machine at the same time (8GB total) the test wouldn't even start. Machine hung on attempting to start the code, and never saw the memory diagnostic screen.

Windows Experience Index is rating the combination highly, so I suppose the memory modules are working.