Overclock.net › Member Blogs › Athlon64 Ram Speed Computations

Athlon64 Ram Speed Computations

I am not a blogger by nature; my personal feelings tend to stay just that. However, there are things from time to time that annoy me enough to justify a rant.

This is one of them.

As we all know: Athlon64 processors, whether they are Socket 754 or AM2+, use integrated memory controllers. While this permits a lower latency and a higher bandwidth than the competition, computing the RAM's actual speed might leave some Dazed and Confused. </LED_ZEP> As we all know or can figure out, with an Intel, RAM is a simple matter. If the FSB is 333 MHz by default, and you are running it at 400 MHz, RAM set to DDR2 667 would be running at 400 MHz, which is DDR2 800 speeds. What about when you have that same scenario but with your RAM set to a DDR2 533 divider? Simple: 266*(400/333) = 319.5 = DDR2 639. Why am I talking about Intel when you came here for AMD? I am building, I'll get there.

Athlon64 processors, as previously mentioned, have an integrated memory controller. The side effect of course is that the RAM is no longer dependent solely on the RAM divider and the HTT (HTT:AMD::FSB:Intel), but also, the total speed of the Athlon64 in question. After real-world observations of three Skt 939 systems, my Skt AM2 system, and my tenure in the Socket 939 Appreciation Club and Knowledgebase, I have discovered the formula. Looks like my degree came in handy for something! Now, this is not a know-all, catch-all formula. I have seen it mess up on at least one occasion. (Exempli gratia infra.) Sure, everyone else probably knows this by now, but after retyping and re-posting it about five times in the last week, I have decided to just write it here so I have a simple link in future.

The general formulae are:

Eq0: HTT_OC*Multi = CPU

Eq1: (HTT_OC/HTT_Stock)*Divider = RAM'

Eq2: CPU/RAM' = Divider'

Eq3: Ceiling(Divider') = Divider

Eq4: CPU/Divider = RAM

The astute will notice that Eq1 is identical as to Intel. The astute will notice further that when dealing with Athlon64s, the HTT_Stock is ALWAYS 200 MHz. I do not care if you have a Barton or an Toliman, the stock reference clock is always 200 MHz. What do we do with them? I guess it might be better to give you some numbers. Consider the following hypothetical system:

In a Newcastle 2800+, the CPU multiplier is 9x, the RAM is on a DDR 333 divider (200:166), and the HTT is 250. We see then:

HTT_OC*Multi = 250*9 = 2250 = CPU

(HTT_OC/HTT_Stock)*Divider = (250/200)*166 = 207.5 = RAM'

CPU/RAM' = 2250/207.5 = 10.84 Divider'

Ceiling(Divider') = Ceiling(10.84) = 11 = Divider

CPU/Divider = 2250/11 = 204.54 = RAM

That is, the RAM in this system is running at DDR 409, since DDR stands for Double-Data Rate, and thus, is twice the speed of the RAM's clock. (Commonly referred to "dual pumped" since the RAM is doing one action on the "up" and one action on the "down." AMD CPUs are also dual pumped. Your HyperTransport is, in reality, twice of what the numbers indicate. (If you are using an Intel and are still reading this, your RAM is dual pumped but your processor is "quad pumped": it does two actions on the up and two actions on the down. This is why your "rated FSB" is four times the FSB in the BIOS.)

Confused? Repetition should cure this. Consider a phenomenal Opteron. (I HAVE to cut back on the puns.) You are running an Opteron 185 Denmark at 325 HTT with a 10x multiplier. Your RAM is running on a DDR 266 divider. What is the RAM actually at? Let us do the math:

HTT_OC*Multi = 325*10 = 3250 = CPU

(HTT_OC/HTT_Stock)*Divider = (325/200)*133 = 216.1 = RAM'

CPU/RAM' = 3250/216.1 = 15.04 = Divider'

Ceiling(Divider') = Ceiling(15.04) = 16 = Divider

CPU/Divider = 3250/16 = 203.13 = RAM

Thus, the RAM here would be running at DDR 406.

If you are younger than I, you are likely wondering why I am still talking about Socket 939. Other than it being the best Socket I know of, it is the one I learned how to overclock on. However, let us consider now Socket AM2 for the younger readers.

Consider a 6400+ BE Windsor with an HTT of 217 and a 17x multiplier. Your RAM is running on a DDR2 533 divider because after buying the CPU and the motherboard, you were broke. Anyway, here is how that breaks down:

HTT_OC*Multi = 217*17 = 3689 = CPU

(HTT_OC/HTT_Stock)*Divider = (217/200)*266 = 288.6 = RAM'

CPU/RAM' = 3689/288.6 = 12.78 = Divider'

Ceiling(Divider') = Ceiling(12.78) = 13 = Divider

CPU/Divider = 3689/13 = 283.8 = RAM

Thus, your system would be running DDR2 568. Really a disservice to that awesome, likely underwater, processor.

Sometimes, you will have different RAM dividers giving the same results. To borrow GuardianOdin's system, consider this:

Opteron 165 Denmark with an HTT = 354 MHz, Multi = 8.5, and then RAM either equaling DDR 286 or DDR 300. (DFI boards have more dividers than most.) Since we have been at it for a while, I will do the short-form math and leave you to fill in the blanks:

DDR 286: Ceil(3009/253.1)=12; 3009/12~DDR 502
DDR 300: Ceil(3009/265.5)=12; 3009/12~DDR 502


And as promised, I close with Pioneerisloud's computer.

He has an Opteron 165 Denmark. It has an HTT of 333, a multiplier of 9, and a RAM divider of DDR 200. We expect:

Ceil(2997/166.5)=18; 2997/18~DDR 333

This is, however, not the case. For some weird reason, his motherboard says that 2997/18 = 167.8 MHz. This is the first, and thus far, only time I have found my formula to fail.

I hope this adventure in mathematics has been as fun for you as it has for me. Stick around until next we meet.


There are no comments yet
Overclock.net › Member Blogs › Athlon64 Ram Speed Computations