Author on 11 June, 2011 | Print | Bookmark
Originally written by Hans:

You noticed that your memory is not running at the speed that you expected and you are wondering
why that is. Here is the most likely answer to that.

Many monitoring programs don't show you the double data rate (DDR) of your memory. So, first, multiply your memory frequency by 2 to get the double data rate. For example, when using PC4300 ram, you get a memory frequency of 267MHz, in stead of 533MHz. 266 is only half the speed of 533, so your monitoring program shows single data rate, not double. With PC3200 it goes 200/400MHz, etc.

The second thing you should consider is the following. The combination of certain memory frequencies and CPU-speeds make it impossible for the memory/cpu to run at full data rate specified by the memory manufacturer. I'll take my own system as an example to show what I mean.

- 2 Opterons 2212, running at 2000MHz.
- PC4300 memory installed. Maximum speed is 267 (single data rate) or 533 (double data rate) MHz.

Now, the following happens: To get the right memory clock speed, the cpu speed is divided by a number. In this case, it would be:

2000/266=7.5 .

This outcome is not possible for the CPU. It needs a round (solid) number. In this case the choice is between 7 and 8. However, when using 7, chances are that the system will not run stable, because the outcome is higher than the memory can handle (guarenteed):

2000/7=286MHz (572MHz DDR).

So, the higher numer (8) is chosen, giving this result:

2000/8=250MHz (500MHz DDR).

In my case, CPU-Z reports a data rate of about 250MHz. Note the first remark I made: you need to
multiply by 2, to get the doube data rate (DDR) speed: 500MHz.

If you oc the cpu speed slightly, memory speed will increase a bit as well. Example: when overclocking the cpu to about 2125MHz, the memory will start running at the speed it can handle:

2125/8=266MHz (533MHz DDR).