Investigations into Socket 939 Athlon 64 Overclocking
by Jarred Walton on October 3, 2005 4:35 PM EST- Posted in
- CPUs
RAM BIOS Settings
The final area that will need attention with overclocking is the RAM. The type of RAM used will dictate the approach to overclocking that RAM.
Winbond BH5/CH5 can usually be set to 2-2-2-7 1T timings and then you can simply adjust the voltage levels to try and make it stable. (Technically, the RAM should be able to run 2-2-2-5 1T, but Wesley's tests have shown 7 for tRAS to be the optimal setting, so that's what we used.) You can also increase the timings above 2-2-2-7 1T, though most Winbond users are more interested in keeping "tight" timings. Samsung TCCx will usually run at 2-2-2-7 1T at DDR400 speeds, but increasing the memory speed will definitely require looser timings and possibly more voltage as well. The above screenshot shows the settings that we used for 9x300. You can refer to our memory articles for more detail on how individual brands of RAM perform. If you want to know a bit more about what the timings actually mean, we covered that in the past as well. The simple fact of life is that memory is variable in quality, so while most RAM can run at the specified timings and speed, how far above that you can go is not going to be the same from DIMM to DIMM. It will require time and effort to determine how fast your RAM can run and what timings and voltages will be required - and the motherboard will affect this as much as anything.
Even if you select the slowest possible timings, some DIMMs won't be able to run much above DDR400 speeds. Value RAM in particular is often what is left after all the high speed blanks are binned out, which is why it can be as cheap as half the cost of quality RAM. The above BIOS screens show our settings for 9x300 with the value and performance RAM - you can see that we had to drop to DDR266 vs. DDR333, since not even the OCZ ran optimally at DDR600. (At least, that's what we needed on this particular board with this particular set of DIMMs. 3-4-4-8 with 2T command rate worked, but was slower than DDR333 2.5-3-3-8 with 1T.) If you're going for top performance, value RAM is a poor choice. If, on the other hand, you want to save money, $85 RAM is a lot more attractive than $150+ RAM. The trick to using value RAM is that you basically have to keep it at or below DDR400 speeds, and this is accomplished by the use of memory ratios. There's a stigma against using higher memory ratios, because it "negates the performance gain." That can be true on some platforms, but it doesn't seem to affect Athlon 64 quite as much due to the integrated memory controller. Let's talk about why.
Above is a rough diagram of a typical Pentium 4 motherboard. The CPU talks over the FSB (Front Side Bus) to the NB (North Bridge of the chipset), and the NB then talks over the memory bus to the RAM. The memory controller is part of the NB, and it runs at the system bus speed. With an 800FSB, the base clock speed is actually only 200MHz, but data is sent four times per clock cycle. With modern CPUs running at four or more times the FSB speed (i.e. 3.2 GHz and above), making the CPU wait for data from memory can severely impact performance. It may help to think of the quad-pumping of the FSB as a four-car train leaving every cycle, with the caveat that the train must be either completely full or completely empty. If the CPU is waiting for data from RAM and only three parts are ready, it has to wait an extra FSB cycle. At 200MHz, an FSB cycle could be as many as 19 CPU cycles (for the 580/680)! Here's where memory ratios come into play.
On the P4 chipsets, the NB talks to the CPU at one speed, and it can talk to RAM at a slower or faster speed. If it talks to RAM faster than it talks to the CPU (i.e. DDR2-533 or DDR2-667 with FSB800), there will be fewer "empty trains" going to the CPU. If it talks slower to the RAM than the FSB, however, there will be more empty slots on the FSB. When we look at Pentium overclocking in the future, we'll cover this more, but the basic idea is that you want the RAM to run at FSB speed or faster if at all possible. Dropping even to DDR333 (which is actually DDR320 for most Intel chipsets) can cause a 5 to 10% performance loss, and DDR266 would be even worse. So, why is Athlon 64 different?
The key is in the integrated memory controller. All modern processors run at much faster clock speeds than memory, which is why we have such things as L1 and L2 cache on the CPUs. Even with cache, though, getting data from RAM faster will improve performance substantially. By eliminating the NB from the CPU to RAM path, latencies can be reduced significantly, and this is the key change that AMD made from the K7 to K8 cores (besides the 64-bit extensions that still go unused by the majority of PC users, of course). Clock for clock, the integrated memory controller of K8 makes the Athlon 64 roughly 25% faster than Athlon XP, which is a significant performance increase given the relatively small amount of die space that was required. The integrated memory controller also affects performance when running at other RAM ratios, though. Since there is no NB to CPU delay when going from RAM to CPU, and since the memory controller runs at CPU core speed, once the data arrives from RAM to the memory controller, it is available. On a P4, the use of lower asynchronous memory speeds only serves to increase the delays in accessing RAM.
An interesting corollary to the above discussion is in the Northbridge link of AMD vs. Intel. On AMD, the Northbridge is connected via the HyperTransport link. Running at 1000 MHz base (double-pumped makes it equivalent to 2000 MHz), the HT bus is 16-bits wide (2 bytes) with dedicated upstream and downstream links. All told, that gives:
The net result is that while a lower RAM clock speed can still impact performance on Athlon 64 systems, it will not do so as much as on a P4 style configuration. That's the theory, anyway, and we hope to support it with results from several planned overclocking articles.
To illustrate the above points, we've created a brief list of cycle rates and timings of RAM. We'll start with some common RAM speeds, but the actual speed of your RAM will depend on the CPU multiplier and CPU bus speed, among other things. With the clock speeds and timings, we can also calculate the latency and estimate the total memory latency. Remember that the RAM timings are relative to the base bus speed, not the doubled speed, so DDR400 has a 200MHz base clock speed. There is also latency involved internally in the CPU (typically at least a single RAM cycle each way is spent in the memory controller), as well as in sending the address request across the memory bus and receiving the data back across the bus to the CPU (we guessed at two RAM cycles each way). Command rate adds another cycle, and maybe we're wrong or missed some other potential delays.
Everything takes time, and the memory timings generally only reflect the delays caused internally by the RAM. Different clock speeds and timings should produce a different total latency, and we estimate the total memory subsystem latency below. We'll check the actual latency in our benchmarks later. In practice, going from DDR200 to DDR400 RAM will not cut the RAM latency in half, even at the same timings. For reference, our estimated latency is calculated as:
Even with all this information, we haven't even come close to touching on every BIOS option or memory timing that's available. That is, simply put, beyond the scope of this article. There are over a dozen memory timings listed in the DFI BIOS, and we left the majority of them set to Auto. The only items that we changed are CAS, tRCD, tRP, tRAS, and CMD. We may try to look at the other options in the future, but most of the extra settings are not available on the majority of the motherboards, and we want the information contained in this OC Guide to be applicable to more than just the "elite" motherboards.
The final area that will need attention with overclocking is the RAM. The type of RAM used will dictate the approach to overclocking that RAM.
Winbond BH5/CH5 can usually be set to 2-2-2-7 1T timings and then you can simply adjust the voltage levels to try and make it stable. (Technically, the RAM should be able to run 2-2-2-5 1T, but Wesley's tests have shown 7 for tRAS to be the optimal setting, so that's what we used.) You can also increase the timings above 2-2-2-7 1T, though most Winbond users are more interested in keeping "tight" timings. Samsung TCCx will usually run at 2-2-2-7 1T at DDR400 speeds, but increasing the memory speed will definitely require looser timings and possibly more voltage as well. The above screenshot shows the settings that we used for 9x300. You can refer to our memory articles for more detail on how individual brands of RAM perform. If you want to know a bit more about what the timings actually mean, we covered that in the past as well. The simple fact of life is that memory is variable in quality, so while most RAM can run at the specified timings and speed, how far above that you can go is not going to be the same from DIMM to DIMM. It will require time and effort to determine how fast your RAM can run and what timings and voltages will be required - and the motherboard will affect this as much as anything.
Click to enlarge. |
Even if you select the slowest possible timings, some DIMMs won't be able to run much above DDR400 speeds. Value RAM in particular is often what is left after all the high speed blanks are binned out, which is why it can be as cheap as half the cost of quality RAM. The above BIOS screens show our settings for 9x300 with the value and performance RAM - you can see that we had to drop to DDR266 vs. DDR333, since not even the OCZ ran optimally at DDR600. (At least, that's what we needed on this particular board with this particular set of DIMMs. 3-4-4-8 with 2T command rate worked, but was slower than DDR333 2.5-3-3-8 with 1T.) If you're going for top performance, value RAM is a poor choice. If, on the other hand, you want to save money, $85 RAM is a lot more attractive than $150+ RAM. The trick to using value RAM is that you basically have to keep it at or below DDR400 speeds, and this is accomplished by the use of memory ratios. There's a stigma against using higher memory ratios, because it "negates the performance gain." That can be true on some platforms, but it doesn't seem to affect Athlon 64 quite as much due to the integrated memory controller. Let's talk about why.
Above is a rough diagram of a typical Pentium 4 motherboard. The CPU talks over the FSB (Front Side Bus) to the NB (North Bridge of the chipset), and the NB then talks over the memory bus to the RAM. The memory controller is part of the NB, and it runs at the system bus speed. With an 800FSB, the base clock speed is actually only 200MHz, but data is sent four times per clock cycle. With modern CPUs running at four or more times the FSB speed (i.e. 3.2 GHz and above), making the CPU wait for data from memory can severely impact performance. It may help to think of the quad-pumping of the FSB as a four-car train leaving every cycle, with the caveat that the train must be either completely full or completely empty. If the CPU is waiting for data from RAM and only three parts are ready, it has to wait an extra FSB cycle. At 200MHz, an FSB cycle could be as many as 19 CPU cycles (for the 580/680)! Here's where memory ratios come into play.
On the P4 chipsets, the NB talks to the CPU at one speed, and it can talk to RAM at a slower or faster speed. If it talks to RAM faster than it talks to the CPU (i.e. DDR2-533 or DDR2-667 with FSB800), there will be fewer "empty trains" going to the CPU. If it talks slower to the RAM than the FSB, however, there will be more empty slots on the FSB. When we look at Pentium overclocking in the future, we'll cover this more, but the basic idea is that you want the RAM to run at FSB speed or faster if at all possible. Dropping even to DDR333 (which is actually DDR320 for most Intel chipsets) can cause a 5 to 10% performance loss, and DDR266 would be even worse. So, why is Athlon 64 different?
The key is in the integrated memory controller. All modern processors run at much faster clock speeds than memory, which is why we have such things as L1 and L2 cache on the CPUs. Even with cache, though, getting data from RAM faster will improve performance substantially. By eliminating the NB from the CPU to RAM path, latencies can be reduced significantly, and this is the key change that AMD made from the K7 to K8 cores (besides the 64-bit extensions that still go unused by the majority of PC users, of course). Clock for clock, the integrated memory controller of K8 makes the Athlon 64 roughly 25% faster than Athlon XP, which is a significant performance increase given the relatively small amount of die space that was required. The integrated memory controller also affects performance when running at other RAM ratios, though. Since there is no NB to CPU delay when going from RAM to CPU, and since the memory controller runs at CPU core speed, once the data arrives from RAM to the memory controller, it is available. On a P4, the use of lower asynchronous memory speeds only serves to increase the delays in accessing RAM.
An interesting corollary to the above discussion is in the Northbridge link of AMD vs. Intel. On AMD, the Northbridge is connected via the HyperTransport link. Running at 1000 MHz base (double-pumped makes it equivalent to 2000 MHz), the HT bus is 16-bits wide (2 bytes) with dedicated upstream and downstream links. All told, that gives:
2000 MHz * 2 bytes = 4000 MB/sThe total HT bandwidth is thus 8000 MB/s - 4000 MB/s in each direction. Here's the catch, though: this bandwidth is separate from the memory bandwidth. If you've ever tried overclocking the HT bus speed and found the results to be of little help, performance-wise, that should hopefully clear things up. There is rarely (if ever) 4 GB/s of data in either direction between the CPU and Northbridge. It's like putting an eight-lane highway through a rural farming community; since there's very little traffic to begin with, the extra lanes (bandwidth) won't help much. That's not to say this is a poor design decision - better to have too much available bandwidth than not enough! The P4 design doesn't suffer from a lack of bandwidth either; the problem is that the time in which it takes to get data from the RAM to the CPU is quite a bit longer - in other words, higher latencies.
The net result is that while a lower RAM clock speed can still impact performance on Athlon 64 systems, it will not do so as much as on a P4 style configuration. That's the theory, anyway, and we hope to support it with results from several planned overclocking articles.
To illustrate the above points, we've created a brief list of cycle rates and timings of RAM. We'll start with some common RAM speeds, but the actual speed of your RAM will depend on the CPU multiplier and CPU bus speed, among other things. With the clock speeds and timings, we can also calculate the latency and estimate the total memory latency. Remember that the RAM timings are relative to the base bus speed, not the doubled speed, so DDR400 has a 200MHz base clock speed. There is also latency involved internally in the CPU (typically at least a single RAM cycle each way is spent in the memory controller), as well as in sending the address request across the memory bus and receiving the data back across the bus to the CPU (we guessed at two RAM cycles each way). Command rate adds another cycle, and maybe we're wrong or missed some other potential delays.
Everything takes time, and the memory timings generally only reflect the delays caused internally by the RAM. Different clock speeds and timings should produce a different total latency, and we estimate the total memory subsystem latency below. We'll check the actual latency in our benchmarks later. In practice, going from DDR200 to DDR400 RAM will not cut the RAM latency in half, even at the same timings. For reference, our estimated latency is calculated as:
7 * (Cycle Latency) + CL + 0.1 * tRCD + 0.05 * tRPIt would be different for other platforms, and it's probably off by as much as 20%, we'd guess. The "7" represents the command rate, CPU to memory controller delays, and memory controller to RAM delays. We did use some tests to try to come up with a good estimate, but take the estimated latency in the following table with a serious dose of skepticism. For a P4 platform, the major change is that the inclusion of the NB will change the "7" factor to something much larger - perhaps 14 to 20. (We'll look at that in a future article.)
RAM Speeds; Timings and Theoretical Latencies | |||||||||||
RAM Rating | Base Speed | ns per cycle | CAS | tRCD | tRP | tRAS | CL ns | tRCD ns | tRP ns | tRAS ns | Estimated Latency |
DDR266 | 133.33 | 7.5 | 2 | 2 | 2 | 5 | 15 | 15 | 15 | 37.5 | 69.75 |
DDR266 | 133.33 | 7.5 | 2.5 | 3 | 3 | 7 | 18.75 | 22.5 | 22.5 | 52.5 | 74.63 |
DDR266 | 133.33 | 7.5 | 3 | 4 | 4 | 8 | 22.5 | 30 | 30 | 60 | 79.5 |
DDR333 | 166.67 | 6 | 2 | 2 | 2 | 5 | 12 | 12 | 12 | 30 | 55.8 |
DDR333 | 166.67 | 6 | 2.5 | 3 | 3 | 7 | 15 | 18 | 18 | 42 | 59.7 |
DDR333 | 166.67 | 6 | 3 | 4 | 4 | 8 | 18 | 24 | 24 | 48 | 63.6 |
DDR400 | 200 | 5 | 2 | 2 | 2 | 5 | 10 | 10 | 10 | 25 | 46.5 |
DDR400 | 200 | 5 | 2.5 | 3 | 3 | 7 | 12.5 | 15 | 15 | 35 | 49.75 |
DDR400 | 200 | 5 | 3 | 4 | 4 | 8 | 15 | 20 | 20 | 40 | 53 |
DDR450 | 225 | 4.44 | 2 | 2 | 2 | 5 | 8.89 | 8.89 | 8.89 | 22.22 | 41.33 |
DDR450 | 225 | 4.44 | 2.5 | 3 | 3 | 7 | 11.11 | 13.33 | 13.33 | 31.11 | 44.22 |
DDR450 | 225 | 4.44 | 3 | 4 | 4 | 8 | 13.33 | 17.78 | 17.78 | 35.56 | 47.11 |
DDR500 | 250 | 4 | 2 | 2 | 2 | 5 | 8 | 8 | 8 | 20 | 37.2 |
DDR500 | 250 | 4 | 2.5 | 3 | 3 | 7 | 10 | 12 | 12 | 28 | 39.8 |
DDR500 | 250 | 4 | 3 | 4 | 4 | 8 | 12 | 16 | 16 | 32 | 42.4 |
Even with all this information, we haven't even come close to touching on every BIOS option or memory timing that's available. That is, simply put, beyond the scope of this article. There are over a dozen memory timings listed in the DFI BIOS, and we left the majority of them set to Auto. The only items that we changed are CAS, tRCD, tRP, tRAS, and CMD. We may try to look at the other options in the future, but most of the extra settings are not available on the majority of the motherboards, and we want the information contained in this OC Guide to be applicable to more than just the "elite" motherboards.
101 Comments
View All Comments
Furen - Monday, October 3, 2005 - link
Actually, Winchesters are pretty bad overclockers. They were even worse overclockers than newcastles and clawhammers back when they came out, which is why the FX-55 was clawhammer based rather than Winchester based.ksherman - Monday, October 3, 2005 - link
hmmm... Im running a 3000+ winchester, and ive got it to 2.56GHz... thats quite an over clock if you ask me... you would probably be the first person I have EVER say that the winchesters do not OC well...ksherman - Monday, October 3, 2005 - link
is there any performance hit when using memory dividers? I have heard that there is, as the memory and CPU are running on different frequencies... and is it better to keep you RAM @ DDR400, and use dividers or run the RAM @ DDR480?ShadowVlican - Monday, October 3, 2005 - link
so i'm guessing basically, A64's prefer low latency than high frequencyJarredWalton - Monday, October 3, 2005 - link
Pretty much. If you think about it, 10x240 with DDR333 setting is actually identical to 12x200 with DDR400 setting. The RAM is at DDR400 in either case. The difference between a 960 MHz HT speed and 1000 MHz HT speed is... well, if you measure more than a 1% difference, I'd be surprised. :)Wesley Fink - Monday, October 3, 2005 - link
Memory dividers DO make a difference in performance on the Intel platform, where the memory controller is in the chipset and latency is relatively high. Basically, the architecture derives memory ratios with added overhead which can definitely impact performance, and 1:1 memory ratio is best.However, the memory controller on the Athlon 64 is on the processor and memory frequencies are derived from HT on the A64, without adding overhead. That means, theoretically, memory dividers should have NO impact at all on Athlon 64 memory performance - everything else being equal (which it rarely is).
ksherman - Monday, October 3, 2005 - link
well i decided to go for the RAM dividers... upto 2.56GHz, memory using the 5/6 divider (DRAM/FSB) RAM @ DDR466 @ 2-2-2-7 3.3V! was at 2.13Ghz, since I didnt want to use memory dividers. so a nice jump in speed! now I just got to find do some benchies! BTW- I am using a DFI Ultra-D and it is the greatest board I have ever owned! havent done the SLI mod yet, but I dont need toksherman - Monday, October 3, 2005 - link
hmm... guess if i read the WHOLE article... ;-)good article though! I highly reccomend the 'Value VX' RAM aka OCZ Value RAM, since when you put enough voltage into it (3.2V in my case) it overclocks like a charm! Im getting DDR 480 with tight timings (not EXATLY sure, but something 2-2-3-8 1T)
Garyclaus16 - Monday, October 3, 2005 - link
Well,...the article states that there have been performance hits with higher dividers. Best way to find out with yourself is to do your own benches! No two systems will overclock exactly the same, so the best way to figure something out is to try it on your own..Aquila76 - Monday, October 3, 2005 - link
If your RAM will run stably at DDR480, leave it. I had to drop mine down becase there's some issue with the mobo higher than 250MHz.