Page 1 of 1

computer freezes performing memory test in Easy Set-up

Posted: Thu Mar 01, 2007 10:43 am
by Wingnut
I just updated my BIOS to the latest version and in the instructions, it says to run tests of everything in easy set-up. So I did. It tested the system board no problem, but when it went to test the memory, the computer seems to have frozen. The progress bar seems to have moved about 20% and is stuck there. Does that mean I have a problem with my memory or does it normally take a long time to test memory? Perhaps because i have a pc100 stick in there, it doesn't like it?

Thanks.

EDIT: After about 10 minutes, the thing beeped and the progress bar moved another 5% or so to 25% total? Does this sound normal? Does it really take this long to test memory???

EDIT 2: Well, after about 20 minutes, the progress bar is at
50%.......

EDIT 3: Nevermind. The thing took over a half an hour, but it finally made it through the test.

Posted: Thu Mar 01, 2007 6:32 pm
by tfflivemb2
That is one of the drawbacks that I have run into with the 600 series...the more ram you install the longer it takes to test it...(yes, I understand that it should logically take longer with more ram, but it takes a GREAT DEAL longer with extra ram)

Posted: Thu Mar 01, 2007 7:14 pm
by rkawakami
From a memory test engineering standpoint it can make sense that if it takes "t" amount of time to test "A" amount of memory, that having 2 * A of memory does not always mean 2 * t amount of time is needed.

Simple memory patterns are classified as multiple N-type patterns. "N" is the number of memory addresses in the array. A pattern that writes all zeros into the entire memory array and then reads them back out is a 2 * N pattern. In order to fully test the memory you also have to write all ones into the array and read them. Thus, 4N is the minimum amount of addresses (or time) that is needed to verify that the memory is functioning correctly. Doubling the amount of memory means doubling the amount of time it will take to execute those patterns.

There are also what is called N-squared (N^2) patterns. This is the number of addresses times itself. In this case, doubling the amount of memory DOES NOT mean double the time. Instead, it's exponential. A trade-off between the simple N and complex N^2 patterns are an N^1.5 or a highly-multiple N pattern. It may be that the built-in memory diagnostics for the 600/600E use such patterns.

Aside: For systems that have SpeedStep processors, be sure to run the diagnostics with an AC adapter connected and/or make sure that the BIOS settings are for High Performance. That way the CPU is running at top speed and it will take less time to complete the testing.

Posted: Thu Mar 01, 2007 9:38 pm
by tfflivemb2
Hey Ray...speak english. jk

I must be really tired, because I got lost after the first paragraph...

Posted: Thu Mar 01, 2007 10:04 pm
by rkawakami
What, a Raiders fan can't do math :) :) ?

Overly simplified, say a 32MB memory module has 32 million distinct addresses (the value "N" in my earlier explanation) that make up the memory. Assuming that you want to be sure that each memory address can accurately store the zeros and ones that make up the binary data, you need to first write the data then read it back later. So, one complete addressing of the memory array (writing zeros) takes 32 million CPU cycles. It takes another 32 million cycles (the 2nd) to read the zeros. Then, since you have to test for ones, another 32 million cycles are needed to write the ones (3rd), and again, 32 million more cycles to read the ones (4th). So, in total, thats 4 * 32 million CPU cycles. Adding a second 32MB module simply means a total of 4 * 64 million cycles will be needed.

For the N-sqaured patterns, it requires 32 million TIMES 32 million cycles (no I'm not going to figure that out :) ). Add a second 32MB module and that means 64 million TIMES 64 million (a much larger number than 32 million squared).

Posted: Mon Mar 05, 2007 1:55 pm
by whizkid
To really test memory, you have to ensure that writing to one location doesn't change *another* location too.

Posted: Mon Mar 05, 2007 2:10 pm
by rkawakami
Which is why there's more complicated patterns than a simple "fill with zeros" and "fill with ones". The N-squared patterns are designed to test that very failure mechanism you mentioned. So are the N^1.5, but they both take too much time to execute given today's memory array sizes. An industry-standard sequence that tests most types of failures is known as a "march" pattern. This is typically a 5 or 6-N pattern. A variation of that is called a "moving inversion", which requires a couple of hundred N.

Since the memory test patterns are built into the 600E's BIOS, there's no way of knowing exactly which type of sequencing it is using. Given the amount of time that is required for a fully loaded 600E (544MB), I'd say that there's a couple of "moving inversion" patterns being executed.