|
![]() |
Overclock.net - Overclocking.net > AMD > AMD Memory | |
DDR2 Memory Speeds Explained
|
||
![]() |
|
|
LinkBack | Thread Tools |
|
|
#1 (permalink) | |||||||||||||
|
Unhealthy OCN Addiction
![]() |
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.
Last edited by durch : 03-17-08 at 12:04 AM |
|||||||||||||
|
|
|
|
#2 (permalink) | |||||||||||||
|
Overclocker
![]() |
Looks good to me. Lengthy but accurate. Just keep in mind my charts you've linked are for AMD DDR2 speeds/dividers etc.
Overall a good job though.
__________________
Aumotocnic "An unfortunate member of the overclock.net insomnia club"
|
|||||||||||||
|
|
|
|
|
#3 (permalink) | |||||||||||||
|
Portable Peformance
![]() |
Read half of it, really interresting, however I think I someone made a FAQ about it before, but it still deserves the REP.
__________________
DIY Built Portable gaming FTW!!
|
|||||||||||||
|
|
|
|
#4 (permalink) | ||||||||||
|
Console Gamer
![]() |
splendid write-up! +rep!
__________________
|
||||||||||
|
|
|
|
|
#5 (permalink) | |||||||||||||
|
Unhealthy OCN Addiction
![]() |
Yea there's some FAQ's on the issue but they didn't make much sense to me when I was starting out, I was hoping this would benefit the people who are new to overclocking by giving more detail, examples, and using more descriptive terms (or at least define the terms) instead of technical ones. I know when I first started learning a few months ago it was very hard to understand all the technical terms, especially since everyone calls things like the HTT, divider, etc something different.
__________________
|
|||||||||||||
|
|
|
|
#6 (permalink) | ||||||||||||
|
Going Broke Overclocking
![]() |
Sticky Time
__________________
"Life is Learning, Learning is Sharing, Sharing is Life" "Overclocking is like a drug addiction, the difference is we go broke improving our brain cells instead of destroying them!" Where in the world to buy on-line Dual or Multi Partition and Why
Everyone, GET Folding, it is important no matter how much you contribute ![]() Phenom II should be called Ph II, not a P II because it isn't an old Intel ![]()
|
||||||||||||
|
|
|
|
#7 (permalink) | |||||||||||||
|
AMD Overclocker
![]() |
Love it! I will use this to help and hopefully my ancient math skills will come back to me so I can apply this. Rep for you!
__________________
There are methods to my madness, and considering I have a great deal of madness, I obviously must have a great many methods - Michinmuri
|
|||||||||||||
|
|
|
|
|
#8 (permalink) | |||||||||||
|
New to Overclock.net
|
Great great article, i understand more, but i hope i don't understood wrongly haha.
__________________Ok so what's the main purpose of this information and chart? :x is it so that when overclocking, we can get the desired RAM clock speed? And because usually when people OC their system they forget about the divider and their RAM get underclocked? Is it so that when someone overclock their system the CPU speed has to be the right one so that their RAM speed can achieve 400MHz for a DDR2 800 RAM? I heard people overclock their RAM, so if the rules stated the speed can't be over 400MHz for DDR2 800, how can overclock the RAM possible? Is there a reason why the chart shows speed up to 1000 for multiplier 14, 800/7, CPU FSB 250, that will be 500MHz? So this breaks the rule because it's over 400MHz? "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?" This part i ...think i might get it... but how does one get the divider for them? why DDR2 667's divider is 6 on multiplier of 10x? Why DDR2 667 divider is 7 if multiplier is 11, etc.. Sorry for the question, this is what students do :x please bare with me
Last edited by Notorious : 02-14-08 at 04:37 AM Reason: Notification |
|||||||||||
|
|
|
|
|
#9 (permalink) | ||||||||||||||
|
AMD Overclocker
![]() |
sign me up,looks great
__________________
Quote:
กกกʍʇɟ qn1ɔ uoıʇɐıɔǝɹddɐ 939 ʇǝʞɔos ǝɥʇ I Draw Stuff.... Come join OCN's 48-hour Fold-a-Thon August 18th
|
||||||||||||||
|
|
|
|
|
#10 (permalink) | ||||||||||||||||
|
Unhealthy OCN Addiction
![]() |
Quote:
Quote:
Quote:
Taking your example of DDR2 667, consider this. At a CPU multiplier of 10x, and the HTT at 200MHz, the total CPU speed is 2000MHz. A divider of 5 gives 400MHz, which violates rule #2 (memory can't run faster than 333MHz at DDR2 667 and an HTT of 200MHz). A divider of 6 gives 333MHz, all rules are satisfied. I divider of 7 gives 286MHz, rules 1 and 2 are satisfied but rule 3 is violated because a divider of 6 works just as well. If you increase the CPU multiplier to 11x (and hold the HTT at 200MHz), the total CPU speed increases to 2200MHz. Now a divider of 6 gives 367MHz, rule #2 is now violated. The computer knows this and increases the divider to 7, giving 314MHz, satisfying all rules. It can be complicated I know, but if you understand the 3 rules you should be able to figure out what the divider will be for any combination of CPU multiplier and memory setting without using the charts. But until then, the charts can be a great quick reference.
|
||||||||||||||||
|
|
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
|
|