Stan said:
Could mismatched memory modules be the reason why my computer freezes
up with some programs? The SIW utility tells me that my two memory
modules don't seem to be matched. One is DDR and the other is DDR2.
The specs for my ABIT KU8 motherboard call for DDR, not DDR2, if that
makes a difference. Here is what the ISW utility shows?
MEMORY SUMMARY
Maximum Capacity 1024 MBytes
Maximum Memory Module Size 4096
Memory Slots 2
Error Correction None
DRAM Frequency 163.6 MHz <--- should be 200.07?
Memory Timings 3-3-3-7 (CL-RCD-RP-RAS)
CAPACITY
Slot1 1536MB <--- wrong for KU8?
Slot2 1024MB
MEMORY TYPE
Slot1 DDR2 (PC3200) <--- wrong for KU8?
Slot2 DDR (PC3200)
SPEED
Slot1 200 MHz (DDR2 400) <--- wrong for KU8?
Slot2 200 MHZ
SUPPORTED FREQUENCIES MHz
Slot1 133.3, 166.7, 200.0
Slot2 166.7, 200.0
MEMORY TIMINGS (neither module seems to match the memory summary)
Slot1 2-2-2-6-8 at 133.3 MHz, at 2.5 volts (CL-RCD-RP-RAS-RC)
Slot1 3-3-3-7-10 at 166.7 MHz, at 2.5 volts (CL-RCD-RP-RAS-RC)
Slot1 4-3-3-8-11 at 200.0 MHz, at 2.5 volts (CL-RCD-RP-RAS-RC)
Slot2 2-3-3-7-0 at 166.7 MHz, at 2.5 volts (CL-RCD-RP-RAS-RC)
Slot2 3-3-3-8-0 at 200.0 MHz, at 2.5 volts (CL-RCD-RP-RAS-RC)
Should I replace one of the modules?
Stan Hilliard
Your SIW information appears to be total crap (i.e. 1536 in one slot???)
The memory bus can only run at one frequency at a time. It only
runs with one set of memory timings. The program CPUZ may make
this more obvious to you (
http://www.cpuid.com/cpuz.php , and
use the "not installed" version for a quick look).
The BIOS decides what to do about the frequency.
The frequency is set by
1) Hardware limitations. Sometimes, certain features of the hardware
are locked together, and as a result, a lower frequency must be
selected so the whole thing works. That can prevent the entire
frequency range of the DIMMs from being used. For example, the
CPU FSB limitations, may prevent the full range of memory clock
values.
2) The frequency is the lower of the rated frequency of the two
modules. If you mix a DDR333 module with a DDR400 module, no
problem. The BIOS picks to run them at DDR333. A faster module
can run at slower speeds. A DDR400 module, can run all the way
down to DDR200 (the lowest setting). And the datasheet for the
device will tell you it could actually run as low as DDR160.
So there is no problem running a stick at a frequency lower
than its rating.
3) A BIOS has programmed in it, knowledge of bus loading
characteristics. On some hardware (like S754 or S939 processors
with built-in memory controller), the bus is load sensitive.
The BIOS may be programmed to use DDR333 when two sticks are
present, even if both of them are DDR400. Some older boards
did that, such as some 3 slot VIA chipsets. They could offer
DDR400, DDR333, or DDR266 operation, depending on how many
sticks were stuffed in the slots. That used to drive some
of the users crazy, as they tried to defeat that feature,
and crank the memory clock back up.
What SIW seems to be reporting, is the timing table in the SPD
chip on the DIMM. The timing table may define two sets of
conditions, like a definition at 166 and 200, but it doesn't
prevent the BIOS from doing anything it wants. Even running
at 133 if conditions dictate. The BIOS can do the math, and
work out the proper timings. (Memory clock 200MHz equals
DDR transfer rate of DDR400...)
You can't mix DDR and DDR2, as the voltages are different.
Memory voltages are 3.3V, 2.5V, 1.8V, 1.5V for the various
generations. They're not intended to be mixed. For boards
which have slots of different memory types, there is a
note in the manual that says *don't* install different
types at the same time. Your board physically only has
one kind of slot, so it isn't physically possible to do
what SIW is reporting.
CPUZ has a report feature, in the last tab over on the right.
You can dump the 256 byte SPD table for each DIMM, and
analyze it by hand if necessary. The tables look like this.
The text file for the report is large, and you're looking
for a table like this. This is what SIW would be analyzing.
Dump Module #1
0 1 2 3 4 5 6 7 8 9 A B C D E F
00 80 08 07 0D 0A 02 40 00 04 60 70 00 82 08 00 01
10 0E 04 0C 01 02 20 00 75 70 00 00 48 30 48 2A 40
20 75 75 45 45 00 00 00 00 00 3C 48 30 2D 55 00 00
30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 57
40 7F 7F 7F 83 00 00 00 00 01 20 20 20 20 20 20 20
50 20 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00
60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
This document is an example of a decoding document for RAM.
It has "DDR Synchronous DRAM (DDR SDRAM)" in the title. I use
an archived link, because the original link isn't working right now.
This tells you how to decode that table of numbers.
http://web.archive.org/web/20030417070529/http://www.jedec.org/download/search/4_01_02_04R11A.PDF
*******
OK, the KU8 is a S754 design, with two memory slots.
To save some chatter, download this K8V manual. It has
the loading table on PDF page 21. There you will find
Table 1 Recommended memory configuration.
ftp://ftp.asus.com.tw/pub/asus/mb/sock754/k8v_basic/e1529_k8v.pdf
The memories are wired like this.
Memory_Data_Bus -------+-------+-------+
| | |
DIMM1 DIMM2 DIMM3
| | |
Memory_Address_Bus#1 --+-------+ |
|
Memory_Address_Bus#2 ------------------+
The Asus K8V motherboard would slow down, if there is too much
loading in both slot 1 and slot 2.
To estimate the wiring on your motherboard, there are a couple
possibilities. Either DIMM2 is missing (the ideal case) or
DIMM3 is missing (not so nice). If DIMM2 is missing, there is
one load on each address bus. There shouldn't be a BIOS related
slowdown in that case. For example, examine the 18th row in the
Asus manual - two DDR400 DIMMS can be run at DDR400, even if
they're double sided. That means, as long as DIMM2 has no load
in it, the memory controller can run full speed.
*******
I guess I've now completely missed the original question
Why does the computer freeze ?
You can run Prime95 Torture Test. It is a good test of memory
and CPU integrity. If you pass this test, then the problem could
be software related. If you fail, you have some BIOS tuning to
do.
http://www.mersenne.org/freesoft
The most likely link you'll want is
http://mersenneforum.org/gimps/p95v259.zip
Unzip that in a separate folder. Run the executable. It may ask
you "Join GIMPs?". Answer you're "just torture testing". You don't
need to join the search for prime numbers, to use the tool.
The custom dialog allows setting parameters. You have (presumably)
1GB of RAM reported in Windows. Allow a couple hundred meg to keep
the OS happy. Maybe you could test about 800MB of memory or so.
Check the size of the memory to be tested. You don't have to test
the whole memory (you can't anyway, because the OS lives there).
You can test a smaller amount of memory, such as 512MB. Chances
are, that will span the gap between the two modules, resulting
in some testing in each module. (I've even hand crafted the
test size, so I control which module gets tested. I've used
that to isolate errors to a particular module. There is no
need for that just yet.)
The program does a math calculation with a known answer. It can
detect math errors. It is very sensitive to memory problems.
I've had it stop execution after only a couple seconds (on a
highly overclocked system). My "confidence interval" is a run
of four hours, with no errors detected. On a multi-core processor,
that program will run a test thread for each physical or virtual
processor. That results in a good workout for the CPU and for the
CPU cooling solution. The benefit of the test, is it tests whether
the computer can handle a heavy computing load, without freezing,
causing the power supply to shut off, or throwing errors and
stopping. If the program reports an error and stops a test
thread, then you need to enter the BIOS and set the BIOS to
more relaxed timing or memory frequency. I won't go into
details, until you report your test results. (I.e. If it
runs for four hours, and reports no errors, you have some
other kind of software problem.)
There are versions of that program that run in Linux. If
you boot a Linux LiveCD, you can run Prime95 in that
environment as well. You can compare Linux stability to
Windows stability. If Linux is stable, and Windows is not,
then your problem is a software one, with your Windows install.
Freezing is a bitch to debug, because there may not be any
error messages to work with. If you have error messages, it
makes it much easier to track down the issue. And freezing
doesn't allow that, so it is more of a "process of elimination"
approach.
Paul