Get a copy of CPUZ for Windows, and verify the conditions the computer
is using with the PC2100 and PC2700 sticks (testing each type by itself,
alone).
It's been a while since I downloaded the latest version, but as far as I
know,
you can use the "no-install" version and just execute the .EXE file
each time you want to use it.
http://www.cpuid.com/softwares/cpu-z.html
http://www.cpuid.com/softwares/cpu-z/versions-history.html
There are several tabs in the window it produces, and one of those
tabs will show memory operating speed. For example, on DDR memory,
a 133MHz input clock, is doubled to 266MHz when transferring data
(one datum on rising edge of clock, one datum on falling edge). And
8 bytes (64 bit wide DIMM) is transferred on each edge.
266MHz*8bytes/transfer
gives "PC2128" or 2128 MB/sec. That is rounded to PC2100.
In the CPUZ window, the RAM would either be listed as 133MHz or 266MHz,
and how it is listed can leave some doubts in the viewers eyes. If you
know the basic properties of the RAM (133MHz input, 266MHz effective
transfer rate, 2128 MB/sec theoretical max using that clock), then you
can kinda guess at how to interpret what it is saying. In some cases,
a user is dealing with extreme overclocks, like a doubling of their
memory subsystem speed, and in that case, it can be hard to decide
exactly how to interpret the results shown. But in your case,
the range of answers is small enough, you should be able to figure it
out.
One display, shows the contents of the SPD chip (table of timing
information versus speed). The SPD contents aid the BIOS in setting
the timing automatically. The other panel in the CPUZ window,
shows the actual speed being used at the moment by the BIOS.
If the BIOS is set to "Auto", as a retail HP would likely do,
then you should find some correspondence, between a particular
line in the SPD page, and the actual current operating conditions.
*******
Your picture of how DDR works, is basically in the right direction.
If you bought PC3200, it could function as a substitute for a PC2700
or a PC2100 stick. The motherboard sets the clock rate, and the memory
works as long as it can still meet timing at whatever speed it happens
to be running at. The SPD table is supposed to contain correct values
for the various speeds. For example, if the timing said 3-3-3 at
DDR400, you'd expect to see the current operating conditions reflect
those numbers.
So should a PC2700 stick have worked in a PC2100 ? For the most part yes.
In some cases, a computer may not be applying enough VDimm to make the
DIMM work correctly. Or, if you buy generic RAM from Ebay, the DIMM
may never have been tested properly, and the RAM may be failing to meet
any reasonable set of conditions. A copy of memtest86+ from memtest.org
can be used to evaluate the memory (scroll half way down that web
page, to find the download links). If you run one or two passes of that
test program (you boot the computer with it), it'll test the memory.
If you see the same location corrupted with the same pattern, on each
pass of the same test number, then there is a chance that one of the
memory chips has a "stuck-at" fault, where the memory bit simply
cannot be changed in value. Such a memory should be returned to the
vendor, and a refund obtained.
There is only one situation I know of, where using higher speed memory
can be a problem. There was one particular motherboard, where the BIOS
was poorly designed. The chipset had a GPU (built-in graphics) in the
Northbridge. If you install a slower memory (like your PC2100), the
GPU gets a particular value of clock when that happens. When you
put in the faster stick, the BIOS decides it would be fun to speed
up the GPU clock, leading to graphics instability and desktop video
related crashes. Now, a lot of chipsets with built-in graphics won't
do that, but there is at least one out there, where the BIOS design
is poor. In most other circumstances (thousand of other motherboard
designs), you can use a PC3200 in a PC2100 system if you want.
Some BIOS are so bad, they can't even read the SPD chip, and
automatically set correct values in the BIOS. I had a retail
motherboard like that, and the behavior changed (for the better)
after a BIOS update. This is one of the reasons, if a person
builds computers for a living, they should use a copy of CPUZ
on each one they build, and verify that indeed the system is
running at the correct speed, with the correct timing values.
That saves a lot of future grief, where the end-user doesn't
understand why the computer keeps crashing, why reloading
Windows doesn't fix anything, etc.
Once you've done the basics with tools such as memtest86+ and
with CPUZ, there is one final "acceptance test". There are more
ways to do this, than this program, but it's the one I use.
http://www.mersenne.org/freesoft
If you run Prime95 while booted into Linux or Windows, you
can "stress test" your new RAM. The program has a "Just testing"
mode, for verifying the ability of the computer to compute
correct results. One hour of Prime95 testing, is equivalent
to a hundred hours of staring at an idle desktop in Windows,
in terms of stability testing. If you can pass four hours of
Prime95 testing, without seeing an error, then that is when
I consider the computer is ready for real work. By comparison,
being able to boot Windows without crashing, isn't much of a
test at all. Prime95, or other "stress testers", are much
better at establishing that the computer is ready to use.
The only reason I'm still using Prime95, is I'm too lazy to
look for another program
Paul