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
JarredWalton - Monday, October 3, 2005 - link
It's tough to say how things will pan out long-term. 1.650V seems reasonably safe to me, but I wouldn't do it without a better HSF than the stock model. The 1.850V settings made me quite nervous, though. If you can get your CPU to run at 1.600V instead of 1.650V, that would be better, I think. There's also a possibility that slowing down your RAM slightly might help the CPU run at lower voltages. I'd sacrifice 5% to run what I consider a "safer" overclock, though really the thought of frying a $140 CPU doesn't concern me too much. That's less than any car repair I've had to make....cryptonomicon - Monday, October 3, 2005 - link
well for most overclocks a reasonable ("safe") increase of voltage is 10-15%. however that is just a guideline, it may be more or less. there is sort of a way to find out: if you work on overclocking to the maximum of your chip while scaling the voltage, you will eventually hit a place where you have to increase the voltage dramatically just to get up the next FSB bump. for example if you are at 2500mhz and 1.6v, then it takes 1.75v just to get to 2600mhz, then you have hit that boundary and should go back down immediatly. when the voltage to cpu speed ratio is scaling consistently, then things are fine. but once the voltage required becomes blatently unbalanced, that is the logical time to stop... unless you have no concern for the longetivity of the chip.Ecmaster76 - Monday, October 3, 2005 - link
Finally goaded me into overclocking my P4 2.4c. I had been planning for a while but never bothered too.So I got bored and set the FSB to 250mhz (I went for my goal on my first try!) with a 5:4 (still DDR400) memory ratio. It works great at stock cooling + stock voltage. I will have to do some long term analysis of stability but since I am building a new system before the years end I don't really care if it catches on fire. Well as long as it doesn't melt some of my newer nerd toys that are attached to it.
lifeguard1999 - Monday, October 3, 2005 - link
I am running an AMD Athlon 64 3000+ Processor (Venice) @ 2.7 GHz, stock HSF; 1.55V Vcore; DFI LANPARTY nF4 SLI-DR. It was cool seeing you run something similar to my setup. I run value RAM and it seems that I made the right choice for me (giving up at most 5% performance). You ran at Vcores much higher than I do, so it was interesting to see the CPU handle that.The only thing I would add to this article is a paragraph mentioning temperatures that the CPU experienced.
mongoosesRawesome - Monday, October 3, 2005 - link
yes, i second that. temps at those volts using your cpu cooler as well as with maybe a few other coolers would be very helpful. also, if you could do a few tests using different coolers to see when temps hold you back.JarredWalton - Monday, October 3, 2005 - link
I've got some tests planned for cooling in the near future. I'll be looking at CPU temps for stock (2.0 GHz) as well as 270x10 with 1.750V. I've even got a few other things planned. My particular chip wouldn't POST at more than 2.6 GHz without at least 1.650V, but that will vary from chip to chip. The XP-90 never even got warm to the touch, though, which is pretty impressive. Even with an X2 chip, it barely gets above room temperature. (The core is of course hotter, but not substantially so I don't think.)tayhimself - Tuesday, October 4, 2005 - link
Good article, but your Vcore seems to scale up with most of the increments in speed? Did you HAVE TO raise the vcore? Usually you can leave the vcore until you really have to start pushing. Comments?JarredWalton - Tuesday, October 4, 2005 - link
2.20GHz was fine with default 1.300. 2.40GHz may have been okay; increasing the Vcore to 1.40V seemed to stabilize it a bit, though it may not have been completely necessary. 2.60GHz would POST with 1.450V, but loading XP locked up. 1.550V seemed mostly stable, but a few benchmarks would crash. 2.70GHz definitely needed at least 1.650V, and bumping it up a bit higher seemed to stabilize it once again. 2.80GHz was questionable at best even at 1.850V with the current cooling configuration. It wouldn't load XP at 2.80GHz at 1.750V, though.JarredWalton - Tuesday, October 4, 2005 - link
My memory on the voltages might be a bit off. Personal experimentation will probably be the best approach. I think I might have erred on the high side of required voltage. Still, past a certain point you'll usually need to scale voltage a bit with each bump in CPU speed. When it starts scaling faster - i.e. .1V more to get from 2700 to 2800 MHz - then you're hitting the limits of the CPU and should probably back off a bit and call it good.tayhimself - Tuesday, October 4, 2005 - link
Thanks a lot for your replies. Looks like there is a fair bit of overclocking even if you dont increase the Vcore too much to help save power/noise etc.Cheers