Uncle said:
RE: HP a1310n / (ASUS Amberine M 1.03), XP Home.
I have 4 sticks of memory (in these slots):
2x512's that came with the PC (0,1)
1x1024 (2)
1x512 (3)
None, as far as I know, are rated 'dual channel' - maybe the original 512's,
but they were in slots 0 and 1, and all 4 slots are black.
Question, looking at the above mix, what do you suggest would be the most
optimal arrangement, slots 0-3?
I know mix/match is never the absolute optimal, but I might as well make the
most of it...
Thank you!
This is a S939 motherboard, with four slots. The S939 memory
controller is inside the processor, rather than being in the
Northbridge chip, like on an Intel based board. What this
means, is the memory controller characteristics are determined
by the processor.
As far as I know, the rules changed slightly for Revision E or
later. Revision E would be processors with a revision of E3, E4,
E6 and so on. CPUZ from cpuid.com can list some of the characteristics
of your system, its processor type, including helping with the RAM.
There are two channels on your board. One channel consisting of
slot A1 and A2. The other channel is slots B1 and B2. Options for
your system, include single channel modes, or dual channel mode.
To get a dual channel mode, with a Revision E or later processor,
the arithmetic sum of memory in the two channels should be equal:
A1 + A2 = B1 + B2 (population rule for dual channel)
Your combo of 512 + 512 + 1024 + 512, cannot be balanced, without
tossing one of the 512MB sticks.
The very best configuration for you at the moment, is 2x1024MB.
Toss three 512MB sticks, buy a new 1GB stick, and then you can
stick 1GB in A1 and 1GB in B1. Channels balance, minimal loading
on each channel, giving DDR400 Command Rate 1T operating conditions.
As with any OEM board, it is an open question as to whether the
BIOS would use the best conditions. Many retail motherboards used
by home builders, would allow setting the DDR400 1T condition.
With your current set of RAM, no matter what slots you put them
in, you are in virtual single channel mode. The controller will
only fetch 64 bits at a time from the memory subsystem. In dual
channel mode, it fetches 128 bits at a time. The theoretical
difference means cutting memory bandwidth in half, although the
real world result is probably not quite so bad.
Now, in terms of channel loading, you can have one stick or two.
The number of "sides" of RAM determines the electrical loading.
RAM comes in single sided and double sided RAM. The most
economical RAM is usually double sided, which gives the highest
loading.
When two double sided sticks are installed in a channel, the
channel can only run at a reduced rate. You might get
DDR333 Command Rate 1T or DDR400 Command Rate 2T, when there
are two sticks on a channel.
So, what happens when you plug 512+512 into A1+A2 and plug the
1024 into B1. The system runs in dual channel (good), but the
loading of the "A" channel means that the clock has to be slowed
down. So you see DDR333 and whatever Command Rate the BIOS feels
like.
So, to summarize:
1) Four sticks, may be dual channel or not, if the channels
match in quantity of RAM. Channel loading means accepting
a lower clock rate and/or higher "command rate" value.
With your current RAM, 512 + 1024 + 512 + 1024 would be
the best you could do, with minimal extra purchases.
2) Three sticks, matched for quantity, does get back the
dual channel characteristic. But the two DIMMs sitting
on the one channel, means accepting the lower clock rate
again. 512 + 512 on one channel, 1024 on the other.
3) Two sticks of PC3200 (DDR400) RAM is the optimal memory
config for these systems. If both sticks match in size,
one in A1, one in B1, you get dual channel. The memory
controller can go as fast as it can (DDR400 Command Rate 1T).
I would pick (3), and use two 1GB sticks to get near to the
amount of RAM you seem to be interested in.
Since you have all the RAM in hand, you can actually test
all these configurations for yourself. I recommend memtest86+
from memtest.org . It comes in a floppy version or a CD version.
There is a "bandwidth indicator" for the memory bus, as the
third indicator down on the left hand side. You boot the
computer with the memtest86+ test disk, and the bandwidth
indicator tells you the megabytes/sec of the memory config.
Also, you can use applications like "SuperPI", to rate the
application level difference. Test to something like 1 million
digits. Take the recorded time in seconds and write it down,
for each memory configuration. That will give you some idea,
how much faster your current 2x512MB best config is, compared
to the three or four stick options you've got. The system
I'm typing on, does 1M of SuperPI, in 48 seconds or so,
just to give you some idea how long a test run lasts.
http://www.xtremesystems.com/pi/super_pi_mod-1.5.zip
If you have a processor previous to revision E, then
strict matching is required. You can only install
matched pairs for those older processors. So 2x512MB
is all that would work with an older processor, with the
collection of RAM you have in hand, for a dual channel
configuration.
Command Rate, is the rate that commands are sent over the
address bus. A value of 2T, means two clock cycles are
needed, to move one piece of info. A value of 1T, means
one clock cycle is needed, to move one piece of info. That
is why a rating of "2T" is bad - it cuts the potential
command rate in half (although to keep things in perspective,
commands are not being sent 100% of the time, which is why
the impact is not a halving of performance).
HTH,
Paul