I found the relevant information from a review in NewEgg for Athlon 64 X2 5050e. The AMD K8 architecture moved the memory controller from the MB to CPU die and it runs at full CPU clock frequency. But DDR2 RAM cannot run at the same clock frequency as the CPU core, so there is a divider that is applied to the CPU clock speed to come up with the final DRAM frequency.
The DDR2 divider for AM2 CPUs is an integer based on CPU multiplier and is calculated like this: CPU multiplier x 0.5 x RAM ratio (this is 1 for DDR2-800, 1.2 for DDR2-667, 1.5 for DDR2-533 and 2 for DDR2-400) then rounded upwards to the nearest integer .
For e.g.: The CPU multiplier for 5050e is 13 and its CPU clock speed is 2600MHz (13x200MHz). The DDR2 divider is then 7 (rounded up from 13 x 0.5 x 1.0 = 6.50). DDR2-800 memory will be running at the CPU clock speed divided by 7, which is 371.4MHz = 2600/7 and lower than than the rated speed 400MHz of DDR2-800. To have it running at 400MHz, we need to overclock a little: the necessary CPU clock would be 400 * 7 = 2800MHz. Therefore the FSB should be overclocked by 7.7% to 2800/13 (CPU multiplier) = 215.4 from the default speed 200MHz.
I then went to my BIOS and set the FSB to 216 (215 is not an option for my MB) and save it. Afterwards the cpuz shows my FSB becomes 216.7MHz and HT link is 1083.4MHz. When the CPU is not idle (then the CPU multiplier is 13), the CPU clock speed becomes 2816.9MHz and the DRAM frequency is 402.4MHz (2816.9/7).
If the CPU has an even multiplier (e.g. 14 for a 2800MHz speed), no overclock would be needed to run DDR2-800 at its rated frequency of 400MHz.