s said:
Thanks for the reply.
Ok, so just to ensure I understood correctly.
My machine currently has
memory bus as
Memory Bus Properties:
Bus Type Dual DDR2 SDRAM
Bus Width 128-bit
Real Clock 267 MHz (DDR)
Effective Clock 533 MHz
Bandwidth 8533 MB/s
and
Memory Device Properties as
Form Factor DIMM
Type Detail Synchronous
Size 512 MB
Speed 533 MHz
Total Width 64-bit
Data Width 64-bit
Device Locator XMM1
So, whether I choose the HP or Crucial RAM component,
both would be compatible with my motherboard?
If so, which would be better for performance?
The machine will be used for doing some development
with Coldfusion, Flex running a database server service as back end
for an application. Running it on 1GB with ColdFusion, Flex
made it seem too slow. Which of the two RAM would
be a better choice in terms of performance?
It is a 32bit Windows OS, but I guess with the applications
(ColdFusion, Flex and data
base server service), along with Outlook, MS Word, Excel that
might be running concurrently, it could use atleast 3GB of it
for most of the time.
In such a scenario would getting a 4GB RAM help at all?
Can someone please clarify?
Thanks
You have a Pentium 4 model 640 3.2GHz core, FSB800 processor.
You currently have installed, 2x512MB memory, running PC2-4300
(DDR2-533). Now, that could be, because the memory provided with
the computer, is limited to PC2-4300. (They didn't throw in the
fastest memory they could. Only you can tell that, by perhaps looking
at the label on the RAM. Even the electronic means of identification,
visible in CPUZ, is not guaranteed to be accurate, so I can't even
suggest that as a guaranteed method of indicating what is installed.)
http://www.cpuid.com/cpuz.php
If you purchase 2x1GB memory, you'll have a total of 3GB including your old RAM.
If you purchase 4x1GB memory, remove the 2x512MB, you'll have a total of 4GB.
The 945 chipset is addressed in this article.
http://www.anandtech.com/printarticle.aspx?i=2602
I used a P5LD2 Deluxe manual, to get this info.
http://dlcdnas.asus.com/pub/ASUS/mb/socket775/P5LD2 Deluxe/e2099_p5ld2_deluxe.pdf
FSB speed Memory speed
FSB800/533 DDR2-400
FSB1066/800/533 DDR2-533 (Your current condition)
FSB1066/800 DDR2-667
DDR2-667 times 8 is PC2-5300. (The 667 number is mega transfers per second,
which, when multiplied by 8 bytes per transfer, gives you MB/sec. So
the 5300 is 5300MB/sec transfer rate.)
You are offered for sale, PC2-6400 (faster than the machine goes) or
PC2-5300 (as fast as the machine will go). Thus, either memory is
suitable for gaining the maximum memory transfer rate.
Your current memory is running DDR2-533. That is PC2-4300. Two
sticks running dual channel gives ~8600MB/sec. But that is still
one notch slower than your new memory can run (if everything works
out well). If you remove your old memory, at PC2-4300, and
install either of the new products you were looking at, then
the BIOS could select the higher rate.
It is all a function of how your BIOS behaves, as to whether this will
happen or not. The Asus manual gives the impression that with an FSB800
processor, there are three memory divider values available. Does the
BIOS on your board, offer all of those as a custom setting ? For
BIOS which are supplied with pre-built (HP/Dell/Acer/Gateway) computers,
sometimes they err on the simplistic side, and the BIOS doesn't take
advantage of every thing offered to it. (You could try looking in the
BIOS screens, and see what options are visible. If you're lucky, all
the info needed could be staring you in the face. Or the BIOS may choose
to hide the higher values, until a faster memory is actually present
in the computer. So there are no guarantees as to what you'll
get by a visit to the BIOS screens.)
So, if you were a rich guy, you could buy 4x1GB PC2-5300 or faster
and install that. What would you get from that ?
For something like WinXP 32 bit, the address space is limited to 4GB.
Some address space is needed for the video card. Some address space is
needed for PCI cards. These address spaces are allocated in chunks of
256MB. A typical situation might be, 768MB of space is reserved for
system busses and the devices on them. Any "street addresses" remaining
can be used for system memory. You plug in 4GB, but the OS can only
see 3.25GB. The other 0.75GB of memory is sitting there, but the way
the address decoding on the hardware is set up, you just cannot get
to the memory. Any attempt to probe those locations, "hits" the PCI bus
or the video card instead.
Would using a 64 bit OS help ? In this case, no. Because the hardware
is limited to 32 bits total for address space. The bus is only 32 bits
wide where it enters the Northbridge.
OK, now you have the kernel/user space split to consider. By default,
this is 2GB/2GB. By using the /3GB boot.ini flag, you can change the split
to 1GB/3GB, meaning a single program can address up to 3GB of memory.
The kernel and OS need a small amount, and in an optimistic mood, I'll
assume the kernel is magically happy with the leftovers.
http://en.wikipedia.org/wiki/Boot.ini
So now we have the 3GB of memory. We modified the boot.ini, to change the
split, and then rebooted. Now, we fire up Photoshop. Damn! Photoshop
won't use any more than 1600MB of memory. Next, we hear about
"large_address_aware" flag, that must be set on a program, for it
to use more memory. We check an article on the Internet, and it
claims all you have to do, is change that value on an application,
and it'll start using 3GB. Nope. Doesn't work. My guess at this
point, since it failed to work for me, is the application actually
has to be compiled for 3GB and large address awareness, because the
awareness comes from the instructions actually used in the program.
Setting the flag may only be part of the solution. I didn't waste
any more time finding out. (I had to dump the 4GB setup on my
machine, because the BIOS couldn't program it in a stable fashion
and I was getting too many errors. If I did random experiments with
the settings, until the end of this century, I might have eventually
fixed it.)
http://support.microsoft.com/kb/297812
In any case, you can leave such experiments for after you get your
new memory, and see if you fare any better.
Since you'll typically be running multiple applications anyway,
there may not be a good reason to be aiming for one of them to use
the entire (free) 3GB worth of memory. Maybe you'll only want the
database to use a lesser amount, so you have some left for your applications.
In such a case, there isn't anything you have to do. You don't have
to read any articles or do experiments. You can just use your software.
You may find, that any one program can't use more than 1600-2000MB
of the memory. So if you had three programs, and each one used
1GB of memory, none of the limits would be triggered and it would
all work. It is only if you insist on giving the entire memory to
just one program, that you'll meet resistance. At least I did.
It wasn't critical to me, that I succeed at setting that up,
and I was doing it mainly "in the name of science"
*******
There is one other parameter for memory that matters. That
is CAS or Column Address Strobe latency. The smaller that
number, the faster the memory responds to a request.
Industry standard might be CAS5 or so. You'll find plenty
of memory, where the CAS is not stated, and in those cases,
you'll have to assume it is the "median" value, whatever that
happens to be. (I don't have any reference material handy here,
to say what that value is for all the various memory types.)
To give you some idea what you can do, with respect to CAS,
I can demonstrate with my system. My system won't run the
memory very fast. All it will do, is DDR2-533. What I did, was
buy DDR2-800 CAS4 memory. The CAS scales with speed.
CAS4 * 533/800 = CAS 2.66
That means, if I buy DDR2-800 CAS4 memory, if the memory
runs slower, the CAS can be made tighter. I run the computer
at CAS3. The CAS the memory could handle, is CAS2.66, so that
means the memory is well able to handle operation at CAS3.
My chipset won't go any lower than CAS3, so it is as fast
as I can make it.
On your system, if you bought DDR2-800 CAS4 memory, and ran
it at DDR2-667, the math says
CAS4 * 667/800 = 3.33
You have to round that number to the next highest integer,
so the memory remains at CAS4 when run at DDR2-667. So in
your case, you can't make the CAS any tighter.
So your choices are -
1) Buy memory at PC2-5300 or faster.
2) Buy CAS4 instead of CAS5, with some amount of price increase.
Will tighter CAS make a difference ? It'll only amount to a
few percent. You need a stopwatch to detect the difference.
You can't "feel" the difference.
HTH,
Paul