Hello all,
While reading through the forums, I often see a lack of understanding in how your computer calculates DDR2 memory speeds and what you can do to change it. It is my attempt to explain this in detail, as most people give one line answers and you can't possibly explain this in one sentence.
First, let me say that I don't know what the "accepted" term is for a lot of settings since so many people mix old Intel words (like FSB) with AMD features and likewise mix old AMD terms for DDR and socket 939 with newer, very different DDR2 memory and socket AM2. Also, every motherboard uses a different term adding to the confusion. So let me define the terms I'll be using.
a) reference clock - That number that starts at 200MHz and gets multiplied by the CPU multiplier to give you your "total CPU speed". It's what you increase to overclock your CPU.
b) total CPU speed - the total speed, example: 2200MHz for my X2 4200+ at stock
c) memory setting - i.e. DDR2 800, DDR2 667, DDR2 533, DDR2 400. Get the idea? Many people often call this the divider, but as you'll see that isn't really correct.
Here's the basic principle of your DDR2 memory's speed. It's calculated by taking the total CPU speed and dividing it by some number, the divider. This divider isn't chosen at random, the computer follows strict rules when choosing the divider. If you understand how it chooses it, you can control your overclock. Here's the equation written out:
Memory speed = (total CPU speed)/(divider)
So logic tells you that to adjust the memory's speed, you must adjust the "total CPU speed", the divider, or both! As you'll see, this can get complex for DDR2.
Open this chart in another window, it's VERY valuable and will help you understand what I write below:
LEARN THIS CHART. IT'S YOUR FRIEND.
Adjusting the "total CPU speed":
To do this, you either increase the reference clock from 200MHz to a higher number, change the multiplier, or both. However, what usually happens in overclocking, is you figure out that magical "total CPU speed" that your processor can handle at its default multiplier (which cannot be increased). But at that CPU multiplier, you're stuck with a high divider. People will lower their CPU multiplier to get a lower divider, but as you lower the CPU multiplier, your "total CPU speed" drops. Oh noes! So you jack up the reference clock to acheive the same product. So that's why increasing the reference clock has an indirect effect on increasing the memory's speed. It's really the "total CPU speed" that affects the memory's speed, but to acheive that speed with a lower multiplier you need a higher reference clock.
Adjusting the divider:
Everyone uses archaic terms like set a 1:1 divider. Show me an AM2 motherboard with DDR2 memory that has a CPU:memory ratio option in the BIOS and I'll give you a cookie
. As a noob learning to overclock a couple months ago I was like.... "huh?" everytime I heard someone say that, because I had no idea what they meant. I think when people say that, they're referring to the old 939 days where the reference clock was 200MHz (still is) AND the frequency of the memory was 200MHz (but 400MHz effectively since its DDR, or double data rate memory). So setting your memory to DDR 400 was setting it to operate at 200MHz just like the reference clock, or a 1:1 ratio. Those were the simple days when that's all you had to do. In today's world with DDR2 memory, the 1:1 ratio doesn't have much meaning.
Here's what effects the divider with DDR2 memory and AM2 sockets. The CPU multiplier, and what I call the "memory setting" (i.e. DDR2 800, 667, 533, 400). It's not really accurate to just say set the divider since two factors influence it, so several combinations will yield the same divider.
Let's say we hold one factor constant, the memory setting (put it at DDR2 800). With a CPU multiplier of 10 or below, the divider is 5. A multiplier of 11 or 12 gives a divider of 6. A multiplier of 13 or 14 gives a divider of 7. A multiplier of 15 or 16 gives a divider of 8. See a pattern?
What if we hold the CPU multiplier constant, say 10x. Well, at DDR2 800 you get a divider of 5, DDR2 667 the divider is 6, DDR2 533 the divider is 8, and DDR2 400 the divider is 10. Now if you both change the memory setting AND the multiplier, you can get all sorts of combinations. For example, a CPU multiplier of 12 at DDR2 800 gives a divider of 6, but so does a CPU multiplier of 10 at DDR2 667. You have to consider both factors.
LEARN THIS CHART. IT'S YOUR FRIEND.
One Last Point:
What confuses people the most is the underclocking of memory caused by DDR2 memory paired with an odd or fractional CPU multiplier. Here's what makes it so difficult: THE DIVIDER MUST BE A WHOLE NUMBER. Why is that a big deal? I'll explain in a minute, but first, the three rules your memory follows:
1) The divider must be a whole number.
2) ("total CPU frequency")/divider cannot exceed 400MHz for DDR2 800, 333MHz for DDR2 667, 267MHz for DDR2 533, or 200MHz for DDR2 400 at the stock reference clock of 200MHz.
3) When choosing a divider, the CPU chooses the smallest number that won't violate rules 1 or 2.
Let's take an easy combination. The X2 4400+ Windsor with a 200MHz reference clock and a 12x multiplier and the memory set to DDR2 800. 200 x 12 = 2400MHz, the stock speed. Remember, with the memory set to DDR2 800, it sets your divider to the SMALLEST whole number that won't be greater than 400MHz. 2400/6 = 400, all rules are met. Why not set the divider to 5? 2400/5 = 480, this violates rule 2. Why not set the divider to 7? Because 6 met conditions 1 and 2, and rule 3 says choose the smallest number that works. Easy enough I hope, and it results in your memory running at what you expect it to, 400MHz (800MHz effective).
Let's make it more complicated. Take the X2 4200+ Windsor with a 200MHz reference clock and an 11x multiplier with the memory set to DDR2 800. 200 x 11 = 2200MHz, the stock speed. Remember, with the memory set to DDR2 800, it sets your divider to the SMALLEST whole number that won't be greater than 400MHz. What happens if we set the divider at 5? 2200/5 = 440MHz. This violates rule 2, so the divider stays at 6. Even though the 4200+ runs at 2200MHz and the 4400+ runs at 2400MHz, they use the same divider. Let's look at what effect this has on the memory's speed. 2200/6 = 366.67MHz (733MHz effective). Woah! Even though you set the memory to DDR2 800, it's being underclocked to DDR2 733. This is because ideally, the divider should be 5.5 (2200/5.5 = 400) but that violates rule 1. This is true for all odd CPU multipliers and DDR2 memory, your memory will be underclocked!
Think about it, only multiples of "total CPU speeds" of 400 work out evenly. i.e. 2000MHz, 2400MHz, 2800MHz, etc. If you have a CPU speed like 1800MHz, 2200MHz, 2600MHz, etc then you can't divide by a whole number and get 400, so your memory is being underclocked.
This means that the even multipliers are advantageous if you have good RAM, as they start your RAM at 400MHz instead of some underclocked value. 10x and 12x are very popular for overclockers with good memory because you can get more from your memory.
Remember though, this divider is chosen based on those three rules when the reference clock is at 200MHz. The divider stays the same as the reference clock is increased. However, as clearly shown above, as the reference clock goes up the "total CPU speed" goes up. So if the divider stays the same, but the "total CPU speed" goes up, then as you raise the reference clock to overclock your CPU you'll be indirectly raising the speed of your memory.
I hope this LENGTHY explanation helps some people. Plz correct me if anything is wrong and feel free to add/clarify anything!
EDIT: I changed "HTT" to the more correct term "reference clock". Please note that many of the responses use the term "HTT" and they are referring to the reference clock.
While reading through the forums, I often see a lack of understanding in how your computer calculates DDR2 memory speeds and what you can do to change it. It is my attempt to explain this in detail, as most people give one line answers and you can't possibly explain this in one sentence.
First, let me say that I don't know what the "accepted" term is for a lot of settings since so many people mix old Intel words (like FSB) with AMD features and likewise mix old AMD terms for DDR and socket 939 with newer, very different DDR2 memory and socket AM2. Also, every motherboard uses a different term adding to the confusion. So let me define the terms I'll be using.
a) reference clock - That number that starts at 200MHz and gets multiplied by the CPU multiplier to give you your "total CPU speed". It's what you increase to overclock your CPU.
b) total CPU speed - the total speed, example: 2200MHz for my X2 4200+ at stock
c) memory setting - i.e. DDR2 800, DDR2 667, DDR2 533, DDR2 400. Get the idea? Many people often call this the divider, but as you'll see that isn't really correct.
Here's the basic principle of your DDR2 memory's speed. It's calculated by taking the total CPU speed and dividing it by some number, the divider. This divider isn't chosen at random, the computer follows strict rules when choosing the divider. If you understand how it chooses it, you can control your overclock. Here's the equation written out:
Memory speed = (total CPU speed)/(divider)
So logic tells you that to adjust the memory's speed, you must adjust the "total CPU speed", the divider, or both! As you'll see, this can get complex for DDR2.
Open this chart in another window, it's VERY valuable and will help you understand what I write below:
LEARN THIS CHART. IT'S YOUR FRIEND.
Adjusting the "total CPU speed":
To do this, you either increase the reference clock from 200MHz to a higher number, change the multiplier, or both. However, what usually happens in overclocking, is you figure out that magical "total CPU speed" that your processor can handle at its default multiplier (which cannot be increased). But at that CPU multiplier, you're stuck with a high divider. People will lower their CPU multiplier to get a lower divider, but as you lower the CPU multiplier, your "total CPU speed" drops. Oh noes! So you jack up the reference clock to acheive the same product. So that's why increasing the reference clock has an indirect effect on increasing the memory's speed. It's really the "total CPU speed" that affects the memory's speed, but to acheive that speed with a lower multiplier you need a higher reference clock.
Adjusting the divider:
Everyone uses archaic terms like set a 1:1 divider. Show me an AM2 motherboard with DDR2 memory that has a CPU:memory ratio option in the BIOS and I'll give you a cookie
. As a noob learning to overclock a couple months ago I was like.... "huh?" everytime I heard someone say that, because I had no idea what they meant. I think when people say that, they're referring to the old 939 days where the reference clock was 200MHz (still is) AND the frequency of the memory was 200MHz (but 400MHz effectively since its DDR, or double data rate memory). So setting your memory to DDR 400 was setting it to operate at 200MHz just like the reference clock, or a 1:1 ratio. Those were the simple days when that's all you had to do. In today's world with DDR2 memory, the 1:1 ratio doesn't have much meaning. Here's what effects the divider with DDR2 memory and AM2 sockets. The CPU multiplier, and what I call the "memory setting" (i.e. DDR2 800, 667, 533, 400). It's not really accurate to just say set the divider since two factors influence it, so several combinations will yield the same divider.
Let's say we hold one factor constant, the memory setting (put it at DDR2 800). With a CPU multiplier of 10 or below, the divider is 5. A multiplier of 11 or 12 gives a divider of 6. A multiplier of 13 or 14 gives a divider of 7. A multiplier of 15 or 16 gives a divider of 8. See a pattern?
What if we hold the CPU multiplier constant, say 10x. Well, at DDR2 800 you get a divider of 5, DDR2 667 the divider is 6, DDR2 533 the divider is 8, and DDR2 400 the divider is 10. Now if you both change the memory setting AND the multiplier, you can get all sorts of combinations. For example, a CPU multiplier of 12 at DDR2 800 gives a divider of 6, but so does a CPU multiplier of 10 at DDR2 667. You have to consider both factors.
LEARN THIS CHART. IT'S YOUR FRIEND.
One Last Point:
What confuses people the most is the underclocking of memory caused by DDR2 memory paired with an odd or fractional CPU multiplier. Here's what makes it so difficult: THE DIVIDER MUST BE A WHOLE NUMBER. Why is that a big deal? I'll explain in a minute, but first, the three rules your memory follows:
1) The divider must be a whole number.
2) ("total CPU frequency")/divider cannot exceed 400MHz for DDR2 800, 333MHz for DDR2 667, 267MHz for DDR2 533, or 200MHz for DDR2 400 at the stock reference clock of 200MHz.
3) When choosing a divider, the CPU chooses the smallest number that won't violate rules 1 or 2.
Let's take an easy combination. The X2 4400+ Windsor with a 200MHz reference clock and a 12x multiplier and the memory set to DDR2 800. 200 x 12 = 2400MHz, the stock speed. Remember, with the memory set to DDR2 800, it sets your divider to the SMALLEST whole number that won't be greater than 400MHz. 2400/6 = 400, all rules are met. Why not set the divider to 5? 2400/5 = 480, this violates rule 2. Why not set the divider to 7? Because 6 met conditions 1 and 2, and rule 3 says choose the smallest number that works. Easy enough I hope, and it results in your memory running at what you expect it to, 400MHz (800MHz effective).
Let's make it more complicated. Take the X2 4200+ Windsor with a 200MHz reference clock and an 11x multiplier with the memory set to DDR2 800. 200 x 11 = 2200MHz, the stock speed. Remember, with the memory set to DDR2 800, it sets your divider to the SMALLEST whole number that won't be greater than 400MHz. What happens if we set the divider at 5? 2200/5 = 440MHz. This violates rule 2, so the divider stays at 6. Even though the 4200+ runs at 2200MHz and the 4400+ runs at 2400MHz, they use the same divider. Let's look at what effect this has on the memory's speed. 2200/6 = 366.67MHz (733MHz effective). Woah! Even though you set the memory to DDR2 800, it's being underclocked to DDR2 733. This is because ideally, the divider should be 5.5 (2200/5.5 = 400) but that violates rule 1. This is true for all odd CPU multipliers and DDR2 memory, your memory will be underclocked!
Think about it, only multiples of "total CPU speeds" of 400 work out evenly. i.e. 2000MHz, 2400MHz, 2800MHz, etc. If you have a CPU speed like 1800MHz, 2200MHz, 2600MHz, etc then you can't divide by a whole number and get 400, so your memory is being underclocked.
This means that the even multipliers are advantageous if you have good RAM, as they start your RAM at 400MHz instead of some underclocked value. 10x and 12x are very popular for overclockers with good memory because you can get more from your memory.
Remember though, this divider is chosen based on those three rules when the reference clock is at 200MHz. The divider stays the same as the reference clock is increased. However, as clearly shown above, as the reference clock goes up the "total CPU speed" goes up. So if the divider stays the same, but the "total CPU speed" goes up, then as you raise the reference clock to overclock your CPU you'll be indirectly raising the speed of your memory.
I hope this LENGTHY explanation helps some people. Plz correct me if anything is wrong and feel free to add/clarify anything!
EDIT: I changed "HTT" to the more correct term "reference clock". Please note that many of the responses use the term "HTT" and they are referring to the reference clock.












