James said:
I have a Pentium 4 machine with an Intel mother board, using 3 DDR SDRAM
DIMMs (2 ea at 256 M and 1 at 500 M).
The machine has exhibited a range of 'flaky' behaviours so I downloaded
Memtest86 to test memory.
The memory test (with all three DIMMs installed) showed about six
different memory addresses with errors (some with a few, some with many).
So I removed two of the three DIMMs, ran a memory test, and had memory
errors, several of which were on the same address as had showed up with
all three DIMMs installed.
Then I swapped out the single card which was showing errors and
installed one of the other two: it, too, showed errors and one group of
errors was at the exact same address as had been flagged in the two
previous tests.
At this point, I stopped. It seems to me unlikely that two DIMMs, each
made by different manufacturers, each a different size, and each in use
for a different period of time, would have errors at exactly the same
hex address.
Anyone out there that might have some suggestions for what I might try
next?
Many thanks.
Jim
Each motherboard company uses slightly different design practices.
What I've noticed in the SDRAM era, is the use of onboard Vdimm
regulation.
The ATX power supply has a 3.3V rail. You would think it would be
a no-brainer, to connect the 3.3V rail to the 3.3V SDRAM memories.
And yet, you'll find retail motherboards that have a separate
supply circuit on the motherboard, to power RAM and other things.
I checked my 845 based motherboard, which has SDRAM slots on it,
and it comes with a Vdimm voltage adjustment header. A jumper is
used to select 3.4V, 3.5V, or 3.6V operating voltage for the
SDRAM core and I/O power. Notice that the circuit doesn't even
have the option to run at 3.3V, the nominal voltage specified for
SDRAM.
Now, Intel can do many things with their design. They probably
do not connect the SDRAM directly to the power supply. But, if
they provide a separate regulated circuit for SDRAM, it might only
provide the one option for 3.3V operation and not be boosted.
It could be, that the memory circuit is not receiving full
voltage from its regulator, for whatever reason.
In terms of memory timings, there is tCAS. That number is the
most important, in terms of performance, and you pay extra for
a low number. A CAS3 memory would be typical "industry standard",
while a CAS2 memory represents better performance and a premium
price. Now that SDRAM is no longer mainstream, this pricing
structure has collapsed, and the price is now the same in some
cases.
A second number, is tRCD. If you check into some of the
overclocking articles, there were claims that the memory
clock could be pushed higher, by setting tRCD one notch higher.
That doesn't affect performance too much, but does change
the stability.
So, if you had a tRCD of 2 normally on the RAM, then a value of
3 may reduce the error rate seen on the memory.
To check the current memory settings, you can use a program like
CPUZ. Write down the numbers used for the current timings. Then,
you can try going into the BIOS, and if the Intel BIOS supports
manual memory timing, try bumping tRCD up by one, and test again.
http://www.cpuid.com/cpuz.php
The root cause of your problem, could be one or more voltages
fed to the Northbridge. The Northbridge has a low voltage fed
to its core, and that could be weak. Or the memory operating voltages
and the voltage on the I/O pads, could also be weak. Those could
contribute to "flaky" operation.
Fiddling with the memory timing, is so you can continue to use
your system, without buying new components.
You'd need to know a fair bit about the design, to know where to
probe with a multimeter, to check up on the board and its
voltages.
If changing timings is not helping, then replacing the motherboard
might be the only other alternative.
Memtest86+ does have an interaction with the "USB legacy" setting
in some motherboard BIOS. But as far as I can remember, the
result is memtest freezing, rather than running and reporting errors.
Microsoft also has a memory test program, and like memtest86+, it
doesn't need an OS to work. You can compare test results from this,
with the results seen in memtest86+.
http://oca.microsoft.com/en/windiag.asp
Note that, memtest86+ uses a memory map provided by the BIOS, and
if reserved areas are not reported correctly, there can be memory
locations being written by background processes, which would cause
memtest86+ to report errors. Since the source of memtest86+ is
available, you can read some of the info in the source or related
documentation, for additional comments on the liabilities of how
testable memory is located. Not all memory in the memory map, is a
candidate for memtest86+. There are always memory areas that
are reserved. I'm not saying that memtest86+ is defective,
merely that you should do a bit more reading about how it
works, before judging the test results seen.
Paul