[ Main / Projects / Docs / Files / FAQ / Links ]
RAM is complicated for old x86 machines and for non-x86 machines, so I shall not cover them here.
The newest machines require DDR2 RAM, which is a lower-voltage and internally terminated version of DDR1. It has only recently offered equivalent performance to DDR1, but has recently improved in latency and now provides comparable or higher speeds. I would not reccomend any form of DDR2 clocked below 800MHz.
For DDR1 x86 machines, at the moment, you probably need unbuffered PC3200/DDR400 RAM. For AthlonXPs and Athlon64s, this is certainly the case. If you are running dual-channel, you need two DIMMs of equal size. Alternatively, you may use three DIMMs so long as the DIMMs satisfy 2A = B where A and B are the size of the DIMMs. It is best to use no more than three unbuffered DIMMs at a time, even if the motherboard has more slots. Every DIMM represents more capacitance on the bus and puts more stress on the motherboard's often insufficient termination. After a point, the delicate timing is thrown out of tolerance and speed or stability suffers.
Opteron machines require registered DIMMs. Since registered DIMMs already incur a timing hit when compared to unbuffered DIMMs, it is probably worth getting ECC for the extra paranoia. PC3200 is once again the appropriate choice at the moment. Opterons are also dual channel, but since they use registered RAM, excess capacitance on the bus isn't a concern and more than three DIMMs may be used with impunity.
I don't use P4 machines, so I can't comment on them.
Buy RAM from reputable vendors; low quality RAM is a common source of stability problems, and may be incompatible with more motherboards than higher quality RAM. I have always had good luck with Crucial, although they don't currently make RAM that is suitable for heavy overclocking.
For higher performance/lower latency, I have had good experience with OCZ RAM. That said, you should not buy overclocker RAM unless you have a need for it. Ideally, you will know what target frequency range you expect to use, and will buy RAM that operates at a low latency within that frequency range. Latency is at least as important as bandwidth to many applications.
Never buy extra RAM from OEMs for notebook PCs or printers -- vendors absurdly mark up bundled RAM upgrades (sometimes by almost an order of magnitude in the case of printer OEMs). Instead, buy compatible RAM from a vendor like Crucial.
If you suspect unstable RAM, the best tests are repeated compiles (compiler segfaults almost always indicate either faulty ram or an overclocked or overheating CPU), Prime95 torture test runs, or memtest86. BIOS RAM boot tests are absolutely worthless and indicate nothing useful.