AMD's Phenom X4 9350e
Installing Ubuntu Netbook Remix on the OLPC XO
The $600 US stimulus check PC

A64 Memory Clock and Timings

by Mike D. published Feb 8, 2006

Filed under: AMD, overclocking, processors

This is the fifth article in a six-part guide book.

Step 3: Find the Maximum Stable Memory Clock at the Best Possible Timings

In the previous section, we were interested in seeing just how far we could push the CPU clock without stressing the memory, and memory controller. This time around, we are interested in seeing how far we can push the memory without stressing the CPU. Again, we are not concerned about overall system performance at this point. We simply want to see how tight we can get the timings and how high we can get our memory clock speed.

Getting Started

In this process, we'll take advantage of the A64's downward unlocked multiplier to reduce the CPU frequency. Before doing anything, be sure to return all of your BIOS parameters that we changed in the previous section to their default values. If you have a Sempron 2500/2600+, you'll be forced to use the default multiplier, as these chips are completely locked (see 'A Quick Note on Multipliers' section for more information)

Before we begin, the following needs to be done, regardless of your memory type:

  • Set 'Command Timing' to 1T or 'CPC Enabled' if you are using one or two memory modules. You'll have to keep it set to 2T or CPC Disabled if you are using more than two DIMMs.
  • Leave the remainder of the memory timings at 'Auto' or their default values.
  • Ensure that your memory is running at a 1:1 ratio (200MHz) if you are using PC3200 or higher memory. If you are using PC2700 or slower memory, you will be forced to use a divider. Also, if you are using more than 2 DIMMs, you may be forced to use the 166MHz divider (5/6 divider). See the 'A Quick Note on Memory Modules' section for more information.
  • Set CPU Multiplier below the default value. I would recommend a two or three-step decrease. If your multiplier is 11x, set it to 8x, and so on. If you have very high clocking memory like TCCD, you will want to use an even lower multiplier. Avoid using anything below 6x if possible. Depending on your platform, you may experience some odd, and inconsistent behaviour from your system with a very low CPU multiplier (below 6). If you have a Sempron 2500/2600+, you will be forced to use the default multiplier.
  • OPTIONAL: Increase the chipset voltage slightly to help the mainboard cope with high reference clocks. A 0.1V increase is sufficient. If your mainboard does not support this type of increase, simply disregard this step.

Once you have the above is set, we are ready to get started. Do not adjust the memory voltage (vDIMM) at this point. There will be more on this later. Once we have the CPU out of the picture, we'll do the following to begin pushing the memory (don't change anything yet; this is simply an outline of what will be done).

  • Slowly (incrementally) increase the reference clock frequency: Increase the reference frequency incrementally, which in turn, increases your memory's operating frequency.
  • Adjust the HTT (LDT) Multiplier as necessary: As we increase the reference clock frequency, we'll do some calculations, and ensure the overall HTT bus frequency stays within acceptable limits.
  • Stability Testing after each increase: After each reference clock increase, we'll run Memtest86+ to test for stability. I will be running loops of test #5 and test #8 for about 10 minutes per test.

Once a failure occurs, we'll begin either loosening the timings to take stress off of the memory or increasing the vDIMM, depending on the type of memory. Since our action is different depending on the type of memory, it is important to know just what category your memory type falls into. The next section will help you determine what course of action you should take.

If you have not already done so, be sure to have a bootable Memtest86+ floppy or CD ready to go. Refer to the 'Tools' section for more information on how to obtain a copy of Memtest86+.

Knowing Your Memory:

There are countless types of DDR memory modules available on the market. It would be very difficult to write this guide to address all different types of memory. There are several different classes that many memory modules fall within. This basic classification will assist you in following along. There will be specific examples to come for each of the below:

Value/Generic Memory: Most inexpensive modules are considered 'value' memory, and usually do not have much overclocking headroom. Performance can sometimes be increased by tightening the timings slightly. When using this type of memory, dividers frequently need to be utilized to prevent the memory from running too far out of specification when overclocking. There have been some 'wolves in sheep's clothing' value modules on the market, so you never know what your value RAM is capable of until you try to push it. You'll see just how well our Kingston 'Value RAM' performs later on in this section. If you are unsure of your memory type, please assume that you are using this category of memory when following this guide.

High Voltage, Low Latency: This type of memory is usually only found in 'enthusiast grade' modules. Memory based on Winbond BH-5/CH-5/BH-6 and other UTT based modules fall into this category. This type of memory loves high voltages. It is not unusual for this type of memory to operate at peak speeds above 3.3 volts. This type of memory also runs at very tight CAS 2 timings, and generally does not run well (sometimes not at all) with loose timings. For our testing, we'll be using a pair of Kingston HyperX PC3500 DIMMs, which are BH-5 based modules.

Low Voltage, High Clocking: This type of memory is usually found in 'enthusiast grade' modules. This type of memory benefits very little from high voltages, and generally runs best with no more than 2.8 to 2.9 volts. This type of memory is often sold as 'tight timing' memory, running at CAS2, but can often scale to much higher frequencies with CAS 2.5 or CAS 3, and other loose timings. TCCD is a perfect example of this type of memory, capable of running over 300MHz with loose timings. We'll be using a pair of OCZ Platinum Rev.2 DIMMs for testing this type of memory.

Memory Example #1: Value/Generic Memory - Finding Your 'Max Mem'

As I mentioned earlier, high-end memory is not a necessity to overclock the A64 platform. This does not mean that you should always strive to keep the memory operating at its default value though. How will you ever know what your memory is capable of until you try to push it?

This example is intended for readers with generic, value, or 'unknown' memory types who have no idea just how far they can push your memory.

Assuming that your value/generic/unknown memory will overclock for beans is a bad assumption. For this example, I'll be using a 512MB stick of Kingston Value RAM I bought back in 2003 for my Athlon XP system. Kingston has rated this memory for rather loose 3-3-3-8 timings at 200MHz, and 2.6V of vDIMM.

NOTE: I'll be using the Sempron 2600+ test system for this memory. Unfortunately, I could not reduce the CPU multiplier, as this CPU is completely locked, so I have no choice but to run this CPU higher than it's default clockspeed while cranking up the memory. You should decrease your CPU multiplier by several values if you are using a normal A64 chip.

My first clue that this memory may have some additional headroom is the rather poor SPD timings. 3-3-3-8 is very loose for PC3200 memory and we'll actually do two things to improve performance: tighten the timings to find a good starting point and try to increase the memory frequency via reference clock increases. Since I have no idea how this memory reacts to vDIMM, I am hesitant to increase it right off the bat. I'll start at the default 2.6V and only increase it as needed, to see if any improvement is experienced. Some memory types will not show any improvement whatsoever with additional vDIMM.

The first thing I want to try is to tighten up the timings. The CAS timing of 3 is likely a place where we may see some improvement. I am going to try 2.5 rather than 3 and I will also reduce the tRAS to 6 as opposed to 8.

[img:640_BIOS_VALUE_DRAM_2.5-3-3-6.jpg]

Once I made those initial changes, I ran a few loops of test 5/8 in Memtest86+.

[img:640_MEMTEST_KVALUE_2.5-3-3-6-200MHZ.jpg]

So far so good. The RAM appears to have no issue with 2.5-3-3-6.

Curiosity got the better of me, and I wanted to see if I could further tighten up the timings. Lowering the RAS to CAS (tRCD) and Row Precharge (tRP) below their default values of 3 made the system very unstable and it would not post. I had to reset the CMOS to get back into the BIOS (See 'Quick Note on Clearing the CMOS' section). tRCD and tRP are often not very flexible with value RAM. CAS2 was also not possible, and gave similar results. It may be possible to obtain CAS2 stability, but we would have to greatly reduce the operating frequency of the ram, which will most certainly negate any performance benefit from running it at CAS2. Considering how terribly unstable the system was with anything tighter than 2.5-3-3, I will assume that extra vDIMM will not help either. tRAS may be further tightened, but anything tighter than 6 on the A64 platform begins to decrease performance (See 'A Quick Note on Memory Timings' section).

Since 2.5-3-3-6 appears to pass our initial stability tests, it seems like a logical starting point for us to begin increasing the memory frequency beyond 200MHz.

Without further ado, let's start bumping the reference clock. We'll stick with 3MHz increments after an initial 5MHz bump in reference clock frequency, since we don't know how much headroom will be present.

TIP: As your reference clock speed increases, so will your HTT! Be sure to calculate your overall HTT frequency after each step, and adjust your LDT/HTT multi as necessary.

Similar to the chart I put together in the 'Maximum CPU' section, we'll keep track of our progress using the below variables.

Memory Overclocking: Progress Chart

REF MEM CLK CAS tRCD tRP tRAS CPC vDIMM CPU CLK HTT CLOCK 15 min Memtest86+ (Test 5/8)
200 200 2.5 3 3 6 1T 2.6V 1600MHz 1600MHz (4x) PASS
205 205 2.5 3 3 6 1T 2.6V 1640MHz 1640MHz (4x) PASS
208 208 2.5 3 3 6 1T 2.6V 1664MHz 1664MHz (4x) PASS
211 211 2.5 3 3 6 1T 2.6V 1688MHz 1688MHz (4x) PASS
214 214 2.5 3 3 6 1T 2.6V 1712MHz 1712MHz (4x) PASS
217 217 2.5 3 3 6 1T 2.6V 1736MHz 1736MHz (4x) PASS
220 220 2.5 3 3 6 1T 2.6V 1760MHz 1760MHz (4x) PASS
223 223 2.5 3 3 6 1T 2.6V 1784MHz 1784MHz (4x) FAIL

So at 223MHz, and with timings tighter than Kingston's specs, we were able to obtain an impressive memory overclock. Far from shabby, but this game is not yet over. We'll begin to loosen the timings. First, we'll return the timings back to SPD defaults (3-3-3-8) and then see how much further we can go.

BIOS screenshot

click to enlarge

Memory Overclocking: Progress Chart

REF MEM CLK CAS TRCD TRP TRAS CPC vDIMM CPU CLK HTT CLOCK 15 min Memtest86+ (Test 5/8)
200 200 2.5 3 3 6 1T 2.6V 1600MHz 1600MHz (4x) PASS
205 205 2.5 3 3 6 1T 2.6V 1640MHz 1640MHz (4x) PASS
208 208 2.5 3 3 6 1T 2.6V 1664MHz 1664MHz (4x) PASS
211 211 2.5 3 3 6 1T 2.6V 1688MHz 1688MHz (4x) PASS
214 214 2.5 3 3 6 1T 2.6V 1712MHz 1712MHz (4x) PASS
217 217 2.5 3 3 6 1T 2.6V 1736MHz 1736MHz (4x) PASS
220 220 2.5 3 3 6 1T 2.6V 1760MHz 1760MHz (4x) PASS
223 223 2.5 3 3 6 1T 2.6V 1784MHz 1784MHz (4x) FAIL
223 223 3 3 3 8 1T 2.6V 1784MHz 1784MHz (4x) PASS
226 226 3 3 3 8 1T 2.6V 1808MHz 1356MHz (3x) PASS
229 229 3 3 3 8 1T 2.6V 1832MHz 1374MHz (3x) PASS
232 232 3 3 3 8 1T 2.6V 1856MHz 1392MHz (3x) PASS
235 235 3 3 3 8 1T 2.6V 1880MHz 1410MHz (3x) PASS
238 238 3 3 3 8 1T 2.6V 1904MHz 1428MHz (3x) PASS
241 241 3 3 3 8 1T 2.6V 1928MHz 1446MHz (3x) PASS
244 244 3 3 3 8 1T 2.6V 1952MHz 1464MHz (3x) PASS
247 247 3 3 3 8 1T 2.6V 1976MHz 1482MHz (3x) PASS
250 250 3 3 3 8 1T 2.6V 2000MHz 1500MHz (3x) PASS
253 253 3 3 3 8 1T 2.6V 2024MHz 1518MHz (3x) FAIL

Amazingly, with default timings, we were able to push this value memory to PC4000 speeds. 3-3-3-8 timings are not the greatest, but the high 250+MHz clock speed certainly helps to offset that.

We're not quite done yet, though. Loosening the tRCD to '4' should get us a bit further yet.

BIOS screenshot

click to enlarge

With tRCD set to 4, I came up with the following:

Memory Overclocking: Progress Chart

REF MEM CLK CAS tRCD tRP tRAS CPC vDIMM CPU CLK HTT CLOCK 15 min Memtest86+ (Test 5/8)
200 200 2.5 3 3 6 1T 2.6V 1600MHz 1600MHz (4x) PASS
205 205 2.5 3 3 6 1T 2.6V 1640MHz 1640MHz (4x) PASS
208 208 2.5 3 3 6 1T 2.6V 1664MHz 1664MHz (4x) PASS
211 211 2.5 3 3 6 1T 2.6V 1688MHz 1688MHz (4x) PASS
214 214 2.5 3 3 6 1T 2.6V 1712MHz 1712MHz (4x) PASS
217 217 2.5 3 3 6 1T 2.6V 1736MHz 1736MHz (4x) PASS
220 220 2.5 3 3 6 1T 2.6V 1760MHz 1760MHz (4x) PASS
223 223 2.5 3 3 6 1T 2.6V 1784MHz 1784MHz (4x) FAIL
223 223 3 3 3 8 1T 2.6V 1784MHz 1784MHz (4x) PASS
226 226 3 3 3 8 1T 2.6V 1808MHz 1356MHz (3x) PASS
229 229 3 3 3 8 1T 2.6V 1832MHz 1374MHz (3x) PASS
232 232 3 3 3 8 1T 2.6V 1856MHz 1392MHz (3x) PASS
235 235 3 3 3 8 1T 2.6V 1880MHz 1410MHz (3x) PASS
238 238 3 3 3 8 1T 2.6V 1904MHz 1428MHz (3x) PASS
241 241 3 3 3 8 1T 2.6V 1928MHz 1446MHz (3x) PASS
244 244 3 3 3 8 1T 2.6V 1952MHz 1464MHz (3x) PASS
247 247 3 3 3 8 1T 2.6V 1976MHz 1482MHz (3x) PASS
250 250 3 3 3 8 1T 2.6V 2000MHz 1500MHz (3x) PASS
253 253 3 3 3 8 1T 2.6V 2024MHz 1518MHz (3x) FAIL
253 253 3 4 3 8 1T 2.6V 2024MHz 1518MHz (3x) PASS
256 256 3 4 3 8 1T 2.6V 2048MHz 1536MHz (3x) PASS
259 259 3 4 3 8 1T 2.6V 2072MHz 1554MHz (3x) PASS
262 262 3 4 3 8 1T 2.6V 2096MHz 1572MHz (3x) PASS
265 265 3 4 3 8 1T 2.6V 2120MHz 1590MHz (3x) PASS
268 268 3 4 3 8 1T 2.6V 2144MHz 1608MHz (3x) FAIL
268 268 3 4 3 8 1T 2.7V 2144MHz 1608MHz (3x) FAIL
268 268 3 4 3 8 1T 2.8V 2144MHz 1608MHz (3x) FAIL

I was able to get all the way to 265MHz with 3-4-3-8 timings. I tried to further loosen them to 3-4-4-8, which did not help. I also attempted to increase the vDIMM to 2.7 and then 2.8V, which actually caused even more errors in Memtest86+. This memory clearly does not like extra vDIMM. Out of curiosity, I actually decreased the vDIMM even further to 2.5V (below specifications), and I was still able to obtain the same 265MHz overclock. It still failed at 268MHz, but with fewer errors than with 2.6V.

Graph of value RAM timings

click to enlarge

Overclocking this RAM revealed a very pleasant surprise. I had no idea that it was capable of such a large clock speed increase. This would be some great memory for someone trying to construct a 'low-power' or 'low-heat' system such as a HTPC, requiring very little vDIMM.

This is a perfect example of why you should not assume that your 'non-enthusiast' memory lacks headroom. I ran this stick of memory for years at 200MHz, not knowing its full potential. Most 'high quality' PC3200 value RAM modules from reputable manufacturers should have at least 20-30MHz of headroom to play with, and in many situations, you can tighten up the timings for even better performance.

We are not finished yet. We now have a good idea of how this memory behaves at certain timings, and frequencies. Fifteen minutes of testing is hardly sufficient to be considered stable. Do not attempt to boot into the operating system at this time. Skip to the 'Longer Term Testing' section for the next order of business. You'll see why things can change dramatically when bringing the operating system and CPU load into the picture.

Memory Example #2: High Voltage, Tight Timing Memory - Finding Your 'Max Mem'

For our next example, we'll be pushing some Kingston HyperX PC3500 DIMMs, previously owned by TheSMJ. These modules contain the popular Winbond BH-5 IC's. This particular type of memory absolutely loves vDIMM and, if fed enough, can maintain super tight 2-2-2-5 timings at high clock speeds. Our approach to overclocking this type of memory will be a little bit different. Loosening timings actually does little to extend the stability of this memory. We'll feed it additional vDIMM as we progress and only when we reach it's maximum clock at 2-2-2-5 timings will we actually try to loosen the tRP, or tRCD.

You may be wondering just how you can obtain 2.8+ volts for your memory. Very few mainboards actually support vDIMM values above 2.8 or 2.9 volts. DFI's NF3/NF4 boards all support 3.1V and some support as much as 4.0 volts of vDIMM. Some other enthusiast boards can scale this high, but they are few and far between. There are some other nifty tools, such as OCZ's DDR Booster that can get you the voltage you need. It is compatible with many mainboards, and can provide well over 3 volts on most platforms. You can find more information here.

For this particular example, we'll be taking advantage of the large amount of vDIMM attainable with the DFI NF4 series of mainboards. I'll be using the 3500+ system described in the 'Testing Configuration' section.

Kingston memory

click to enlarge

CAUTION: Remember, only a few types of memory modules actually benefit from vDIMM over 2.8V. DO NOT attempt to increase your vDIMM above 2.8V if you are unsure of it's type, or if you are unwilling to accept the risks involved in high vDIMM overclocking.

TIP: The +5V jumper to use up to 4V of vDIMM is located in the top right hand corner of the DFI NF4 series boards. It is important to actively cool that corner of the board, as the circuitry there can get very hot in this mode. In it's default position, the board draws it's vDIMM power from the +3.3V line, and does not require active cooling.

TIP: Remember that it is important to have some airflow over your DIMMs if you are planning to exceed 2.9V. Some large CPU HSF's, such as the Thermalright XP120 and XP90 can cool the socket area, including the DIMMs. A little bit of creativity and a spare fan is all you really need.

Lets get started. Enter the BIOS.

For this type of memory, we're not going to use the 'default' timings. We'll force the popular '2-2-2-5' timings that just about all high-voltage memory is capable of. Again, we're not overly concerned about the other timings, only CPC, CAS, tRCD, tRP and tRAS.

BIOS screenshot

click to enlarge

Also, ensure that 1T or CPC Enabled is selected so long as you are using two DIMMs of PC3200.

BIOS screenshot

click to enlarge

I'm going to use an 8x multiplier with this 3500+ to ensure the CPU clock speed remains relatively low for the testing.

[img:640_BIOS_2.8VDIMM.jpg]

I'm going to set 2.8V of vDIMM right off the bat, which is a great starting point for BH-5.

NOTE: If the system is unstable right away, you may not have provided your voltage hungry ram with enough vDIMM. Remember that most voltage hungry memory requires 2.8 volts to maintain 2-2-2-5 timings. If it is unstable at 2.8 volts and 200MHz, you can attempt an initial vDIMM setting of 2.9 volts or you can attempt slightly looser timings of 2-3-2-5 to begin with, which can sometimes help. If you have no success with that, you should follow the previous 'low voltage' section as opposed to this one. Remember, if you are unsure of your memory type, you should not be following this 'high voltage' section.

Once finished, save your settings and run a few loops of Memtest86+ test number 5 and test number 8 to verify stability. If tests 5/8 are running error free for several loops, return to the BIOS.

Let's get the fun part started. We'll use smaller reference clock increases with this BH-5, as there is usually a very fine stability line that is easy to cross. We'll stick with 3MHz increments after an initial 5MHz bump in reference clock frequency.

NOTE: As your reference clock speed increases, so will your HTT! Be sure to calculate your overall HTT frequency after each step, and adjust your LDT/HTT multi as necessary.

How did we do?

Memory Overclocking: Progress Chart

REF MEM CLK CAS tRCD tRP tRAS CPC vDIMM CPU CLK HTT CLOCK 15 min Memtest86+ (Test 5/8)
200 200 2 2 2 5 1T 2.8V 1600MHz 2000MHz (5x) PASS
205 205 2 2 2 5 1T 2.8V 1640MHz 2050MHz (5x) PASS
208 208 2 2 2 5 1T 2.8V 1664MHz 2080MHz (5x) PASS
211 211 2 2 2 5 1T 2.8V 1688MHz 2110MHz (5x) PASS
214 214 2 2 2 5 1T 2.8V 1712MHz 2140MHz (5x) PASS
217 217 2 2 2 5 1T 2.8V 1736MHz 2170MHz (5x) PASS
220 220 2 2 2 5 1T 2.8V 1760MHz 1760MHz (4x) PASS
223 223 2 2 2 5 1T 2.8V 1784MHz 1784MHz (4x) PASS
226 226 2 2 2 5 1T 2.8V 1808MHz 1808MHz (4x) PASS
229 229 2 2 2 5 1T 2.8V 1832MHz 1832MHz (4x) PASS
232 232 2 2 2 5 1T 2.8V 1856MHz 1856MHz (4x) FAIL
232 232 2 2 2 5 1T 2.9V 1856MHz 1856MHz (4x) PASS
235 235 2 2 2 5 1T 2.9V 1880MHz 1880MHz (4x) PASS
238 238 2 2 2 5 1T 2.9V 1904MHz 1904MHz (4x) FAIL
238 238 2 2 2 5 1T 3.0V 1904MHz 1904MHz (4x) PASS
241 241 2 2 2 5 1T 3.0V 1928MHz 1928MHz (4x) PASS
244 244 2 2 2 5 1T 3.0V 1952MHz 1952MHz (4x) PASS
247 247 2 2 2 5 1T 3.0V 1976MHz 1976MHz (4x) FAIL
247 247 2 2 2 5 1T 3.1V 1976MHz 1976MHz (4x) PASS
250 250 2 2 2 5 1T 3.1V 2000MHz 2000MHz (4x) PASS
253 253 2 2 2 5 1T 3.1V 2024MHz 2024MHz (4x) PASS
256 256 2 2 2 5 1T 3.1V 2048MHz 2048MHz (4x) FAIL
256 256 2 2 2 5 1T 3.2V 2048MHz 2048MHz (4x) PASS
259 259 2 2 2 5 1T 3.2V 2072MHz 2072MHz (4x) PASS
262 262 2 2 2 5 1T 3.2V 2096MHz 2096MHz (4x) FAIL
262 262 2 2 2 5 1T 3.3V 2096MHz 2096MHz (4x) PASS
265 265 2 2 2 5 1T 3.3V 2120MHz 2120MHz (4x) FAIL
265 265 2 2 2 5 1T 3.4V 2120MHz 2120MHz (4x) PASS
268 268 2 2 2 5 1T 3.4V 2144MHz 2144MHz (4x) FAIL
268 268 2 3 2 5 1T 3.4V 2144MHz 2144MHz (4x) FAIL
268 268 2 3 3 8 2T 3.4V 2144MHz 2144MHz (4x) FAIL

As you can see above, there were quite a few failures and, sure enough, a bit of extra vDIMM each time did the trick. Once I got a little past 265MHz, it became evident that 3.4V was not enough. That was about as far as I was willing to go for the purposes of this guide, but if you are a very brave individual you could try even more.

If you are interested in seeing just how far I got with higher voltages, take a look at this thread I started a while back: http://www.short-media.com/forum/showpost.php?p=324904&postcount=9

Graph of BH5 timings

click to enlarge

Graph of Sempron vdimm

click to enlarge

So as you can see from the above graphical plot, this BH5 scales pretty linearly with additional vDIMM. Loosening the timings also did nothing to improve stability at high clock speeds. I believe the memory still has a bit of headroom left in it, however I am not prepared to accept 3.5 volts as a safe 24/7 voltage. 3.4V is about the maximum I'd consider safe (with active cooling of course).

So there you have it: relatively high clock speeds with super tight 2-2-2-5 timings. Unfortunately, this comes at the cost of high vDIMM, but this RAM is for the true enthusiast.

We are not finished yet. We now have a good idea of how this memory behaves at certain timings, and frequencies. Fifteen minutes of testing is hardly sufficient to be considered stable. Do not attempt to boot into the operating system at this time. Skip to the 'Longer Term Testing' section for the next order of business. You'll see why things can change dramatically when bringing the operating system and CPU load into the picture.

Memory Example #3: Low Voltage, High Clocking Memory - Finding 'Max Mem'

Our next example will be some high clocking, very tweakable TCCD memory modules. The DIMMs I am using are OCZ Platinum Rev.2's. I will be using the Athlon 64 3500+ system outlined in the 'Let the Overclocking Begin' section. Unlike the previous two tests, this one will utilize 2x512MB sticks for a total of 1GB of memory.

I will begin by forcing the default timing values for this TCCD (2-2-2-5).

BIOS screenshot

click to enlarge

Ensure that your command timing is set to 1T (CPC Enabled) for maximum DRAM performance. If you have more than two DIMMs, stick with the 2T timing (CPC Disabled) setting. Also, ensure that you are not using a memory divider (200MHz). If you are using more than two DIMMs, you may be forced to use the 166MHz divider.

Manually set your CPU multiplier down several steps. I recommend at least a 2-3 step decrease. If you have high clocking memory, such as TCCD, I'd recommend a 4 step decrease.

BIOS screenshot

click to enlarge

For my TCCD, I'll be using a 7x CPU multiplier to keep the CPU clock speed below default, even with very high reference clock speeds. 7x can be used for just about any A64 processor, so if you are unsure of what multiplier to use, you can just follow suit.

OPTIONAL: With TCCD and other high clocking memory, we want to loosen timings to get additional clock speed headroom and we do not want to have to fiddle with vDIMM at the same time. VDIMM increases usually result in a minor improvement. Rather than leaving the vDIMM at default and increasing it when needed, we'll set a higher, safe vDIMM value right off the bat. 2.8V is a safe vDIMM value for just about any type of memory on the market and would be my suggested value for enthusiast grade, high clocking memory. This will help to simplify our process. Be sure not to use more than 2.9V, as you will likely worsen your overclocking situation and simply stress your DIMMs. Remember, this is an optional step. You can leave your default value as-is if you are not comfortable increasing the vDIMM.

[img:640_BIOS_TCCD_DRAM_2.8VDIMM.jpg]

CAUTION: Although small increases in memory voltage (vDIMM) are relatively safe, excessive increases can cause high thermal output and stress to components, which can cause irreversible damage. Voltage increases may also void your warranty. Many modules have a maximum voltage specified by the manufacturer, which must not be exceeded to maintain your warranty coverage. As always, if you have any questions, be sure to consult with your memory manufacturer prior to beginning. Remember: you do not HAVE to increase your memory voltage to overclock; many modules can get some nice gains on default vDIMM.

Once finished, save your settings and run a few loops of Memtest86+ test number 5 and test number 8 to verify stability. If tests 5/8 are running error free for several loops, return to the BIOS.

So let's start increasing the reference clock speed. For this example, I'm going to take one large 10MHz jump right off the bat and then I will stick with 5MHz increments moving forward until we spot a failure.

Memory Overclocking: Progress Chart

REF MEM CLK CAS tRCD tRP tRAS CPC vDIMM CPU CLK HTT CLOCK 15 min Memtest86+ (Test 5/8)
200 200MHz 2 2 2 5 1T 2.8V 1400MHz (7x) 2000MHz (5x) PASS
210 210MHz 2 2 2 5 1T 2.8V 1470MHz (7x) 2100MHz (5x) PASS
215 215MHz 2 2 2 5 1T 2.8V 1505MHz (7x) 2150MHz (5x) PASS
220 220MHz 2 2 2 5 1T 2.8V 1540MHz (7x) 1760MHz (4x) FAIL

Unlike BH-5, TCCD does not scale terribly well with super tight 2-2-2-5 timings. At this point, we'll have to begin loosening our timings to regain stability. As mentioned in the 'Memory Timings' section, I recommend loosening the tRCD timing next, so I'll loosen it to '3' and see how much further I get.

BIOS screenshot

click to enlarge

Memory Overclocking: Progress Chart

REF MEM CLK CAS tRCD tRP tRAS CPC vDIMM CPU CLK HTT CLOCK 15 min Memtest86+ (Test 5/8)
200 200MHz 2 2 2 5 1T 2.8V 1400MHz (7x) 2000MHz (5x) PASS
210 210MHz 2 2 2 5 1T 2.8V 1470MHz (7x) 2100MHz (5x) PASS
215 215MHz 2 2 2 5 1T 2.8V 1505MHz (7x) 2150MHz (5x) PASS
220 220MHz 2 2 2 5 1T 2.8V 1540MHz (7x) 1760MHz (4x) FAIL
220 220MHz 2 3 2 5 1T 2.8V 1540MHz (7x) 1760MHz (4x) PASS
225 225MHz 2 3 2 5 1T 2.8V 1575MHz (7x) 1800MHz (4x) PASS
230 230MHz 2 3 2 5 1T 2.8V 1610MHz (7x) 1840MHz (4x) FAIL

Next, I'll loosen tRP to '3' and increase tRAS to '6' and push onwards.

Memory Overclocking: Progress Chart

REF MEM CLK CAS tRCD tRP tRAS CPC vDIMM CPU CLK HTT CLOCK 15 min Memtest86+ (Test 5/8)
200 200MHz 2 2 2 5 1T 2.8V 1400MHz (7x) 2000MHz (5x) PASS
210 210MHz 2 2 2 5 1T 2.8V 1470MHz (7x) 2100MHz (5x) PASS
215 215MHz 2 2 2 5 1T 2.8V 1505MHz (7x) 2150MHz (5x) PASS
220 220MHz 2 2 2 5 1T 2.8V 1540MHz (7x) 1760MHz (4x) FAIL
220 220MHz 2 3 2 5 1T 2.8V 1540MHz (7x) 1760MHz (4x) PASS
225 225MHz 2 3 2 5 1T 2.8V 1575MHz (7x) 1800MHz (4x) PASS
230 230MHz 2 3 2 5 1T 2.8V 1610MHz (7x) 1840MHz (4x) FAIL
230 230MHz 2 3 3 6 1T 2.8V 1610MHz (7x) 1840MHz (4x) PASS
235 235MHz 2 3 3 6 1T 2.8V 1645MHz (7x) 1880MHz (4x) PASS
240 240MHz 2 3 3 6 1T 2.8V 1680MHz (7x) 1920MHz (4x) PASS
245 245MHz 2 3 3 6 1T 2.8V 1715MHz (7x) 1960MHz (4x) PASS
250 250MHz 2 3 3 6 1T 2.8V 1750MHz (7x) 1960MHz (4x) FAIL

Now we're talking. Almost 250MHz, while retaining CAS2 timings, is quite impressive.

At this point, we're pretty much forced to move to CAS2.5.

BIOS screenshot

click to enlarge

Memory Overclocking: Progress Chart

REF MEM CLK CAS tRCD tRP tRAS CPC vDIMM CPU CLK HTT CLOCK 15 min Memtest86+ (Test 5/8)
200 200MHz 2 2 2 5 1T 2.8V 1400MHz (7x) 2000MHz (5x) PASS
210 210MHz 2 2 2 5 1T 2.8V 1470MHz (7x) 2100MHz (5x) PASS
215 215MHz 2 2 2 5 1T 2.8V 1505MHz (7x) 2150MHz (5x) PASS
220 220MHz 2 2 2 5 1T 2.8V 1540MHz (7x) 1760MHz (4x) FAIL
220 220MHz 2 3 2 5 1T 2.8V 1540MHz (7x) 1760MHz (4x) PASS
225 225MHz 2 3 2 5 1T 2.8V 1575MHz (7x) 1800MHz (4x) PASS
230 230MHz 2 3 2 5 1T 2.8V 1610MHz (7x) 1840MHz (4x) FAIL
230 230MHz 2 3 3 6 1T 2.8V 1610MHz (7x) 1840MHz (4x) PASS
235 235MHz 2 3 3 6 1T 2.8V 1645MHz (7x) 1880MHz (4x) PASS
240 240MHz 2 3 3 6 1T 2.8V 1680MHz (7x) 1920MHz (4x) PASS
245 245MHz 2 3 3 6 1T 2.8V 1715MHz (7x) 1960MHz (4x) PASS
250 250MHz 2 3 3 6 1T 2.8V 1750MHz (7x) 1960MHz (4x) FAIL
250 250MHz 2.5 3 3 6 1T 2.8V 1750MHz (7x) 2000MHz (4x) PASS
255 255MHz 2.5 3 3 6 1T 2.8V 1785MHz (7x) 2040MHz (4x) FAIL
255 255MHz 2.5 4 3 7 1T 2.8V 1785MHz (7x) 2080MHz (4x) PASS
260 260MHz 2.5 4 3 7 1T 2.8V 1820MHz (7x) 2120MHz (4x) PASS
265 265MHz 2.5 4 3 7 1T 2.8V 1855MHz (7x) 2160MHz (4x) PASS
270 270MHz 2.5 4 3 7 1T 2.8V 1890MHz (7x) 2200MHz (4x) PASS
275 275MHz 2.5 4 3 7 1T 2.8V 1925MHz (7x) 1650MHz (3x) PASS
280 280MHz 2.5 4 3 7 1T 2.8V 1960MHz (7x) 1680MHz (3x) PASS
285 285MHz 2.5 4 3 7 1T 2.8V 1995MHz (7x) 1710MHz (3x) PASS
290 290MHz 2.5 4 3 7 1T 2.8V 2030MHz (7x) 1740MHz (3x) PASS
295 295MHz 2.5 4 3 7 1T 2.8V 2065MHz (7x) 1770MHz (3x) PASS
300 300MHz 2.5 4 3 7 1T 2.8V 2100MHz (7x) 1800MHz (3x) PASS
305 305MHz 2.5 4 3 7 1T 2.8V 2135MHz (7x) 1830MHz (3x) FAIL
305 305MHz 2.5 4 4 8 1T 2.8V 2135MHz (7x) 1830MHz (3x) PASS
310 310MHz 2.5 4 4 8 1T 2.8V 2170MHz (7x) 1860MHz (3x) FAIL
310 310MHz 3 4 4 9 1T 2.8V 2170MHz (7x) 1860MHz (3x) FAIL
310 310MHz 3 4 4 9 2T 2.8V 2205MHz (7x) 1860MHz (3x) PASS
Graph of TCCD timings

click to enlarge

When we take the data from our chart above and plot it graphically, we get a great visual representation of how this TCCD scales with respect to specific timings.

We are not finished yet. We now have a good idea of how this memory behaves at certain timings, and frequencies. Fifteen minutes of testing is hardly sufficient to be considered stable. Do not attempt to boot into the operating system at this time. Skip to the 'Longer Term Testing' section for the next order of business. You'll see why things can change dramatically when bringing the operating system and CPU load into the picture.

Memory Stability in the Operating System - Painting a Very Different Picture

Again, 15 minutes worth of Memtest86+ is hardly sufficient as a stability test. Since the main variables we changed on this memory type were timing values, I'll pick several reference clocks to test longer-term. For this example, I'll be using the same Kingston Value RAM and system configuration that we used for example #1 in the previous section.

For this testing, I'm going to try the highest stable clock we achieved before each timing increase. This is a total of three points. I'll see if I can obtain at least 1 hour of Memtest86+ stability in test 5 as well as test 8. If a failure occurs, we'll back off the reference clock by about 2MHz (or more depending on how quickly it occurs)

Once Memtest86+ has successfully passed, I will also bring the operating system into play, which can often change things considerably. I'll be conducting two tests within the operating system: Prime95 and a 32M SuperPI test. If a failure occurs, we'll back off the reference clock by about 2MHz (or more depending on how quickly it occurs). If we can conclude that 265MHz is stable at 3-3-3-8 timings, we can also conclude that everything slower than that will also be stable. It makes little sense to test ALL of our results.

PLEASE NOTE: 1 hour of Memtest is also not a perfect indicator of stability and that is why I consider this to be 'Longer term stability testing' not long term stability testing. We'll be doing final 'long term' stability testing later in our final section, so stay tuned.

I'm going to start with our Sempron 2600+ results. I selected the below three results for testing, as they are the highest clocks before we experienced a failure and had to loosen the timings.

Memory Stability in the Operating System: Progress Chart

REF MEM CLK CAS tRCD tRP tRAS CPC vDIMM Minimum 1 Hour Memtest86+ (Test 5/8) Operating System Boot SuperPI 32M Test Minimum 1 Hour Prime95 (CustomTest)
265 265 3 4 3 8 1T 2.6V ? ? ? ?
250 250 3 3 3 8 1T 2.6V ? ? ? ?
220 220 2.5 3 3 6 1T 2.6V ? ? ? ?

So without further ado, let's set our BIOS parameters to the highest of the above three items and do some longer runs of Memtest86+. I'll be running one hour of test 5 and one hour of test 8 to start.

Memtest of Value RAM

click to enlarge

Memtest86+ chugged away without any issues in both test 5 and test 8.

So far, things look good. Now let's attempt an operating system boot.

Blue screen

click to enlarge

Before I got anywhere near the desktop, I was greeted with the above message from Microsoft. Somehow, I doubt this is a very positive message.

Why did our system fail so miserably when our CPU is not anywhere near it's maximum clock, and when the memory tested stable for two hours in Memtest86+? Remember we determined that the system was stable at almost 2.2GHz at stock vcore, so it is doubtful that the CPU clock is the culprit. I also carefully calculated the HTT bus clock, and adjusted the LDT multiplier when necessary, so the HTT bus is likely not the culprit. The only explanation is this Sempron's integrated memory controller.

Welcome to where the frustration begins. Clearly this Sempron's IMC is having difficulty coping with the high 265MHz memory overclock. So why did this not become evident in Memtest86+? Memtest86+ is very memory intensive, but it does not place a substantial load on the CPU. When your system is doing something intensive, such as booting into Windows, there is a lot of load on the CPU, memory controller, and the memory itself. This combination of CPU and memory load will cause a weak IMC to fail, thus causing the system to behave similar to one with a bad memory stick in it. This close relationship between the CPU and the system memory is what makes the A64 one of the fastest chips on the market, but can also make it one of the most frustrating to overclock.

So moving forward, I'm going to try to reduce the stress on the memory controller. There are two ways to accomplish this. You can loosen the timings slightly, (even if they appear stable as-is in Memtest86+) or we can further reduce the reference clock, thereby reducing the memory frequency. Since we are already using rather loose 3-4-3-8 timings, I am hesitant to loosen them further, and I am going to give preference to a lower memory clock.

I'm going to simply reduce the reference clock to reduce stress to the IMC. I'll use 2MHz intervals. It is not necessary to re-run the 2 hour Memtest86+ test, as it will no doubt pass at a lower clock speed.

263MHz yielded another wonderful blue screen failure, so I reduced it further to 261MHz and was finally able to reach my desktop. Unfortunately, SuperPI 32M failed within 60 seconds.

Super Pi on Value RAM

click to enlarge

Here is an updated chart:

Memory Stability in the Operating System: Progress Chart

REF MEM CLK CAS tRCD tRP tRAS CPC vDIMM Minimum 1 Hour Memtest86+ (Test 5/8) Operating System Boot SuperPI 32M Test Minimum 1 Hour Prime95 (Custom Test)
265 265 3 4 3 8 1T 2.6V PASS BSOD N/A N/A
263 263 3 4 3 8 1T 2.6V PASS BSOD N/A N/A
261 261 3 4 3 8 1T 2.6V PASS PASS FAIL N/A
250 250 3 3 3 8 1T 2.6V ? ? ? ?
220 220 2.5 3 3 6 1T 2.6V ? ? ? ?

So at this point, we are going to take advantage of Clockgen. Clockgen will allow us to slowly reduce the reference clock from within Windows. This will save us the trouble of rebooting every time a failure occurs, and we need to back off the overclock. For more information on Clockgen, see the 'Tools' section.

Simply reduce the 'base HTT' (which is what I commonly refer to as 'reference clock') two MHz at a time, and re-run the SuperPI 32M test.

After several runs, this was the best I could do:

Memory Stability in the Operating System: Progress Chart

REF MEM CLK CAS tRCD tRP tRAS CPC vDIMM Minimum 1 Hour Memtest86+ (Test 5/8) Operating System Boot SuperPI 32M Test Minimum 1 Hour Prime95 (Custom Test)
265 265 3 4 3 8 1T 2.6V PASS BSOD N/A N/A
263 263 3 4 3 8 1T 2.6V PASS BSOD N/A N/A
261 261 3 4 3 8 1T 2.6V PASS PASS FAIL N/A
259 259 3 4 3 8 1T 2.6V PASS PASS FAIL N/A
257 257 3 4 3 8 1T 2.6V PASS PASS FAIL N/A
255 255 3 4 3 8 1T 2.6V PASS PASS FAIL N/A
253 253 3 4 3 8 1T 2.6V PASS PASS FAIL N/A
251 251 3 4 3 8 1T 2.6V PASS PASS PASS PASS
250 250 3 3 3 8 1T 2.6V ? ? ? ?
220 220 2.5 3 3 6 1T 2.6V ? ? ? ?
Super Pi on Value RAM

click to enlarge

Failure after failure destroyed my hopes of 265MHz, but we still managed a clock of 251MHz.

What about my Memtest86+ stable 250MHz at 3-3-3-8 timings? If the memory controller is able to handle 251MHz, will it be able to handle 250MHz at slightly tighter timings?

Super Pi on Value RAM

click to enlarge

It appears not; 3-3-3-8 is much more stressful on the IMC than 3-4-3-8 and a 1MHz higher memory clock. Once again, SuperPI failed in less than 60 seconds. Using Clockgen, I slowly scaled back the reference clock 2MHz at a time, and came up with the following results:

Memory Stability in the Operating System: Progress Chart

REF MEM CLK CAS tRCD tRP tRAS CPC vDIMM Minimum 1 Hour Memtest86+ (Test 5/8) Operating System Boot SuperPI 32M Test Minimum 1 Hour Prime95 (Custom Test)
265 265 3 4 3 8 1T 2.6V PASS BSOD N/A N/A
263 263 3 4 3 8 1T 2.6V PASS BSOD N/A N/A
261 261 3 4 3 8 1T 2.6V PASS PASS FAIL N/A
259 259 3 4 3 8 1T 2.6V PASS PASS FAIL N/A
257 257 3 4 3 8 1T 2.6V PASS PASS FAIL N/A
255 255 3 4 3 8 1T 2.6V PASS PASS FAIL N/A
253 253 3 4 3 8 1T 2.6V PASS PASS FAIL N/A
251 251 3 4 3 8 1T 2.6V PASS PASS PASS PASS
250 250 3 3 3 8 1T 2.6V PASS PASS FAIL N/A
248 248 3 3 3 8 1T 2.6V PASS PASS FAIL N/A
246 246 3 3 3 8 1T 2.6V PASS PASS FAIL N/A
244 244 3 3 3 8 1T 2.6V PASS PASS FAIL N/A
242 242 3 3 3 8 1T 2.6V PASS PASS PASS PASS
220 220 2.5 3 3 6 1T 2.6V ? ? ? ?

Hopefully 2.5-3-3-6 will be better behaved, as it's only possible at 220MHz, which is a relatively low memory clock. The CPU clock will also be considerably lower with a 220MHz reference clock and will equate to reduced stress.

REF MEM CLK CAS tRCD tRP tRAS CPC vDIMM Minimum 1 Hour Memtest86+ (Test 5/8) Operating System Boot SuperPI 32M Test Minimum 1 Hour Prime95 (Custom Test)
265 265 3 4 3 8 1T 2.6V PASS BSOD N/A N/A
263 263 3 4 3 8 1T 2.6V PASS BSOD N/A N/A
261 261 3 4 3 8 1T 2.6V PASS PASS FAIL N/A
259 259 3 4 3 8 1T 2.6V PASS PASS FAIL N/A
257 257 3 4 3 8 1T 2.6V PASS PASS FAIL N/A
255 255 3 4 3 8 1T 2.6V PASS PASS FAIL N/A
253 253 3 4 3 8 1T 2.6V PASS PASS FAIL N/A
251 251 3 4 3 8 1T 2.6V PASS PASS PASS PASS
250 250 3 3 3 8 1T 2.6V PASS PASS FAIL N/A
248 248 3 3 3 8 1T 2.6V PASS PASS FAIL N/A
246 246 3 3 3 8 1T 2.6V PASS PASS FAIL N/A
244 244 3 3 3 8 1T 2.6V PASS PASS FAIL N/A
242 242 3 3 3 8 1T 2.6V PASS PASS PASS PASS
220 220 2.5 3 3 6 1T 2.6V PASS PASS PASS PASS

As I expected, 2.5-3-3-6 with a lower clock speed of 220MHz did not stress the memory controller. One thing to keep in mind is that the CPU was only operating at about 1.7GHz at a 220MHz reference clock, so CPU stress in general was low.

Graph of Value timings

click to enlarge

Now we know two things:

  • How well this memory overclocks
  • How well this memory overclocks with this CPU

So how about our A64 3500+ test system?

I used the same approach with this system as I used above, so I will simply skip to the results. Let's take a look at our BH-5 first. Since vDIMM was our main variable, I chose several points to test just before we had to increase the vDIMM.

Memory Stability in the Operating System: Progress Chart

REF MEM CLK CAS tRCD tRP tRAS CPC vDIMM Minimum 1 Hour Memtest86+ (Test 5/8) Operating System Boot SuperPI 32M Test Minimum 1 Hour Prime95 (Custom Test)
265 265 2 2 2 5 1T 3.4V FAIL N/A N/A N/A
263 263 2 2 2 5 1T 3.4V PASS PASS PASS PASS
262 262 2 2 2 5 1T 3.3V PASS PASS PASS PASS
259 259 2 2 2 5 1T 3.2V FAIL N/A N/A N/A
257 259 2 2 2 5 1T 3.2V PASS PASS PASS PASS
251 251 2 2 2 5 1T 3.1V PASS PASS PASS PASS
244 244 2 2 2 5 1T 3.0V PASS PASS PASS PASS

As you can see above, the IMC was clearly not holding back this BH-5. If it passed 2 hours of Memtest86+, it passed all of the OS testing; simple as that. This is, however, only 2x256MB of memory. 1GB may be a different story.

Let's see how the 2x512MB of TCCD faired on the same 3500+ system.

REF MEM CLK CAS tRCD tRP tRAS CPC vDIMM Minimum 1 Hour Memtest86+ (Test 5/8) Operating System Boot SuperPI 32M Test Minimum 1 Hour Prime95 (Custom Test)
305 305MHz 2.5 4 4 8 1T 2.8V FAIL N/A N/A N/A
300 300MHz 2.5 4 4 8 1T 2.8V PASS BSOD N/A N/A
295 295MHz 2.5 4 4 8 1T 2.8V PASS BSOD N/A N/A
290 290MHz 2.5 4 4 8 1T 2.8V PASS BSOD N/A N/A
285 285MHz 2.5 4 4 8 1T 2.8V PASS BSOD N/A N/A
280 280MHz 2.5 4 4 8 1T 2.8V PASS PASS FAIL N/A
275 275MHz 2.5 4 4 8 1T 2.8V PASS PASS FAIL N/A
270 270MHz 2.5 4 4 8 1T 2.8V PASS PASS PASS FAIL
265 265MHz 2.5 4 4 8 1T 2.8V PASS PASS PASS PASS
250 250MHz 2.5 3 3 6 1T 2.8V PASS PASS PASS PASS
245 245MHz 2 3 3 6 1T 2.8V PASS PASS PASS PASS
225 225MHz 2 3 2 5 1T 2.8V PASS PASS PASS PASS
215 215MHz 2 2 2 5 1T 2.8V PASS PASS PASS PASS

I was very shocked to find just how badly this 3500+ Winchester was able to handle 2x512MB DIMMs. Even with loose timings and a CPU clock well below default, it could not maintain any level of stability above 265MHz. This TCCD is clearly capable of much more than what I achieved above.

At first, I thought I must have missed something, so I spent over four hours tweaking and tuning every secondary timing from drive strength, async latency, tREF, and many others with no luck. I was able to slightly improve things, but I simply could not maintain stability at anything above 265MHz despite my best efforts. I tried several DFI BIOS revisions to no avail. After doing some further research, I discovered that the CBBID stepping Winchester cores are infamous for a high production percentage of weak IMCs. Although this chip is of good silicon quality and can overclock beyond FX55 clock speeds, it simply has difficulty controlling a pair of 512MB DIMMs at high clock speeds. Thankfully, we are still able to maintain tight timings and stability in the ~245MHz range, which is likely where we'll have to concentrate our efforts in the next section. I tested these TCCD sticks along with my E4 revision Opteron processor, and had no issues maintaining Prime95 stability at 300MHz and 2.5-4-3-6 timings.

If you are lucky enough to own a Venice/San Diego core 'E' revision CPU, you will likely not have run into the same issues I did in this section. Ideally, if your memory is stable in Memtest86+, it should also be stable in Windows.

Let's continue on!

Next (and final) section: Balance and Benchmarks

Previous section: Testing and Finding Max CPU Clock

About the author

Mike D.

Mike D. is a lead hardware reviewer for Icrontic. Mike was recently married, and lives in Canada.